Skip to content
This repository has been archived by the owner on Dec 26, 2023. It is now read-only.

christoffer/readmill-java-wrapper

Repository files navigation

Readmill API V2 Wrapper

Low level wrapper around the Readmill API.

Code is heavily inspired by the excellent Java wrapper for SoundCloud.

A short tutorial is available here. Project page on GitHub.

Example basic usage:

  ReadmillWrapper wrapper = new ReadmillWrapper("my_client_id", "my_client_secret", Environment.LIVE);

  JSONObject user = wrapper.get("/users/1").fetch("user");
  user.optString("username"); // => "christoffer"

  JSONArray readings = wrapper.get("/users/1/readings")
                         .order("created_at").from("2012-08-01T13:37:00Z")
                         .count(50)
                         .fetchItems("reading") // => an array of readings

Authenticated requests that uses a token:

  ReadmillWrapper wrapper = new ReadmillWrapper("my_client_id", "my_client_secret", Environment.LIVE);

  Token myAccessToken = getAnOAuthTokenSomehow();
  wrapper.setToken(myAccessToken);

  // Create
  reading = wrapper.post("/books/20461/readings").readingState("reading").fetch("reading");

  // Update
  String readingEndpoint = String.format("/readings/%d", reading.getInt("id"));
  wrapper.put(readingEndpoint).readingState("finished").fetch();

  // Delete
  wrapper.delete(readingEndpoint).send(); // .send() is just .fetch() without a return value

You can also drop down to a more manual level with finer control of requets building:

  ReadmillWrapper wrapper = new ReadmillWrapper("my_client_id", "my_client_secret", Environment.LIVE);

  Token userToken = currentUserTokenForMyMultiUserApp();

  Request updateReadingState = Request.to("/readings/" + 77)
                                 .withParams("state", "finished", "reading[via]", 1)
                                 .usingToken(userToken);

  HTTPResponse response = wrapper.put(updateReadingState);

Maven

The wrapper is published as a Maven repository available from the GitHub repo.

To use it add this to your pom.xml file:

<repositories>
  <repository>
    <id>readmill-java-wrapper-snapshots</id>
    <url>https://github.com/christoffer/readmill-java-wrapper/raw/master/snapshots</url>
  </repository>
</repositories>

And then list the dependency like this:

<dependency>
  <groupId>com.christofferklang</groupId>
  <artifactId>readmill-java-wrapper</artifactId>
  <version>1.0</version>
</dependency>

About

A wrapper around the Readmill API (version 2)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published