The Open Library Books API was introduced to provide a Google Books compatible API for Open Library.
http://openlibrary.org/dev/docs/api/books Unlike the other APIs, the Books API can be queried for multiple keys (isbns, oclc numbers, etc.). I propose adding some extensions to the API to make it fit nicely into various use cases. JSON EXTENSION: By default, the output of this API is javascript. It will be nice to support JSON so that it can be used at the server-side. I propose supporting an optional "format" argument. http://openlibrary.org/api/books?bibkeys=ISBN:0451526538&jscmd=viewapi&format=json DATA EXTENSION: There is already an extension to provide the data of the matching editions by adding "&details=true" to the URL. With this, any change to the data model will break the API. That can be solved by maintaining multiple versions of the API, but it will nice if we can come up with a format independent of the data model. Here is what I have in my mind. Sample URL: http://openlibrary.org/api/books?bibkeys=ISBN:0451526538&jscmd=data&format=json Sample Response: { "ISBN:0931137071": { "key": "/books/OL1M", "title": "...", "subtitle": "...", "authors": { "key": "/authors/OL1A", "name": "Foo" }, "publishers": [{ "name": "Foo", }], "publish_date": "1024", "publish_places": [{ "name": "New York" }], "identifiers": { "isbn": [...], "lccn": [...], "goodreads": [...], }, "classifications": { "lc_classifications": [...], }, "cover": { "small": "http://covers.openlibrary.org/b/id/1234-S.jpg", "medium": "http://covers.openlibrary.org/b/id/1234-M.jpg" "large": "http://covers.openlibrary.org/b/id/1234-L.jpg" }, "description": "...", "excepts": [...], "links": [{ "title": "Author's website", "url": "http://...." }], "table_of_contents": [...], "ebooks": [{ "info_url": "http://www.archive.org/details/...", "formats": ["pdf", "epub"], }], "subject": [...], "subject_places": [...], "subject_people": [...], "subject_times": [...], } } I moved all the identifiers together and classifications together. For author, both name and key are provided. For publishers and publish_places, only the name is provided. Other attributes can be added in future with breaking the API. Notice that some information from work record is also presented here (description, excerpts, links, subjects etc.). Also ebooks is made into a list of objects with "info_url" and available formats. What do you think about this approach? Anand _______________________________________________ Ol-tech mailing list [email protected] http://mail.archive.org/cgi-bin/mailman/listinfo/ol-tech To unsubscribe from this mailing list, send email to [email protected]
