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]

Reply via email to