Giter VIP home page Giter VIP logo

openlibrary-api-rxclient's Introduction

Open Library API RxClient

The Open Library API RxClient is a Java library for easily connecting to https://openlibrary.org/developers/api/ and getting the received data as RxJava observables. The client is optimized for Android but can also be used elsewhere.

Supported APIs

  • Books (https://openlibrary.org/dev/docs/api/books)
  • Covers (https://openlibrary.org/dev/docs/api/covers)
  • Read (https://openlibrary.org/dev/docs/api/read)
  • RecentChanges (https://openlibrary.org/dev/docs/api/recentchanges)
  • Search (https://openlibrary.org/dev/docs/api/search)
  • Subjects (https://openlibrary.org/dev/docs/api/subjects)
  • Setup (gradle)

    Add jitpack.io to your root build.gradle file:

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
    

    Add the dependency to your project build.gradle file:

    dependencies {
            ...
            implementation 'com.github.rickardzettervall:openlibrary-api-rxclient:0.2'
    }
    

    More setup options can be found over at jitpack.io.

    Getting started

    // Get instance
    OpenLibraryClient client = OpenLibraryClient.getInstance();
    
    // Implement your own RxJava observer, e.g.
    DisposableSingleObserver<List<BookView>> disposable =
                client.getRepository().getBooks(BookView.class, "ISBN:0385472579", "LCCN:62019420")
                        .observeOn(Schedulers.from(ContextCompat.getMainExecutor(this)))
                        .subscribeOn(Schedulers.io())
                        .subscribeWith(new DisposableSingleObserver<List<BookView>>() {
                            @Override
                            public void onSuccess(@NonNull List<BookView> bookViews) {
                                // Do stuff
                            }
    
                            @Override
                            public void onError(@NonNull Throwable e) {
                                // Do stuff
                            }
                        });
    

    Android

    Add internet permission to your AndroidManifest.xml file:

    <uses-permission android:name="android.permission.INTERNET" />
    

    License

    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this repository except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

    openlibrary-api-rxclient's People

    Contributors

    rickardzettervall avatar

    Stargazers

     avatar

    Watchers

     avatar  avatar

    Forkers

    arbergamin

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.