I’ve just released a new java module for getting easy access to the isbndb.com json api.
ISBNdb.com is a site with loads of searchable metadata on books, authors, etc. It also has RESTlike API.
This module makes it possible for you to just add the dependency and call these services like you were calling just another method. And you actually are 🙂
I needed it myself in a project and soon it became apparent that it was kinda generic.
So I went the extra mile and took the trouble of releasing it to maven central.
You can start using it by adding the following dependency to your maven project:
The module is reasonably feature complete, but not extensively used yet. I know I want more convenience methods in there and I need more error handling, but I’ve not jet seen all that can go wrong 🙂
So start using it and give me feedback. If you like it I love comments and beer 🙂
If you’ve added the dependency to your project you can start using it.
There is one important class and that is
Isbndb. Then there is the boundary aka the model. The model is a readonly model. The model will be filled by calling methods on
Isbndb isbndb = new Isbndb();
final AuthorResponse response = isbndb.authorsByName("Ilona Andrews");
This will perform a search on isbndb.com like
http://isbndb.com/api/v2/json/[API_KEY]/authors?q=ilona+andrews&opt=keystats and marshall it into an
AuthorResponse object. This response will be available to you. All available data returned by the call is wrapped in that Response.
Quite a few error responses are currently wrapped to specialized RuntimeExceptions.
The isbndb module tries to find a file called
Isbndb is constructed. When found it will search for a property called
api.key. The value of that key will be used as it does its calls to isbndb.com unless you overrule it by calling the
Without an API key you won’t get any responses except for error messages.
Not yet completely adult
This module is still under development and not completely ‘feature complete’. If you have requests please comment on this page or, even better, fork the github project, fix it and do a pull request.