I just noticed that the 'Dynamic Links API' link is broken. Also there are some escaped forward slashes in the URLs in the example responses. I wonder have you considered including explicit links to the epub and pdf in the 'links' slot?
On a related note, do you all have OPDS support on your roadmap at all? http://opds-spec.org/ OPDS is very similar to the Atom that Google Books API makes available. //Ed On Tue, Jun 8, 2010 at 2:18 PM, Anand Chitipothu <[email protected]> wrote: > > 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] > _______________________________________________ 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]
