OCLC Developer Network

demonstrations and code News Archive

Syndicate content

Check out presentations and information from our panel at CIL!

Last month I had the pleasure of participating on a panel with Jason Griffey from University of Tennessee Chattanooga and Eliot Polak from Norwich University on Plugin and Play Apps. We talked about how the WorldShare Platform can enable libraries to build and share cool custom apps with one another. Jason talked provided an intro to the concepts of platforms and their power.

Building the New York Times Bestsellers application

The last prototype application I built was the New York Times Bestseller application. This application is a riff on one of the potential Platform applications demonstrated at last year's ALA. The "Bestseller App 2.0" allows a library to select a given New York Times Bestseller list and see which items from that list the library doesn't currently own. Then a user can select which of these items should be purchased and how many copies should be purchased. An Amazon cart with these items is then created as is a WMS order.

Building the Amazon Order Application

The first application that I built off of the prototype WMS Acquisiton web service was the Amazon Order application. As I've explained in my basic overview of the Platform prototype application, the purpose of the Amazon application was to take an existing WMS order and send that order to Amazon, creating a shopping cart.

The first thing that the application does is generate a form screen which allows the user to input and existing WMS Acquisitions Purchase Order number.

Building the Alibris Application

The purpose of the Alibris application is to allow a library to upload a tab seperated file of titles available in a particular topic area from Alibris, see which titles the library does not own, and then select titles for purchase. The first thing the application does is generate a form which allows a user to input their library's OCLC symbol and upload a tab seperated (TSV) file to the server

 

Comments

A couple of suggestions

This looks like an interesting application, with potential for small libraries.  A few comments & suggestions for minor fixes, before it goes to production:

 

1) Why does the application run on the user's server, instead of on OCLC's?  This seems like a service OCLC could offer.  Would target users for this application have the technical expertise to install/maintain/secure it themselves?

2) The app asks for a TSV file.  There should be a "help" link the user can click to learn about the format required (what columns, in what order).

3) Typo: should be "separated".

Thanks --Andy

Thanks for the comments and

Thanks for the comments and suggestions. I've tried to answer your questions below

The application is designed to run on a user's servers because it was built from the perspective of a developer in an individual library. The idea was to showcase what a developer in an individual library would be able to build and potentially share the code with others via something like Github. That being said I certainly will pass along to the groups that consider new products and services internally the idea that OCLC could offer a compare this spreadsheet of stuff with a library holdings service.

Yes, the app could have some sort of indication of how to format the TSV file. As what is being consumed is an Alibris specific format that they use with their customers, this didn't go into the original planning of the application and is kind of wrong for the application is originally conceptualized. It can't take any old TSV nor should it. It has to be a TSV representing Alibris' current inventory for a given subject area. Alibris sends these spreadsheets to libraries all the time and I didn't want to ask users who had a these proprietary spreadsheets to have to do much fiddling with them to use this app. As a result the app is meant to just deal with THAT kind of spreadsheet which has not just the book metadata but also the Alibris pricing, condition and inventory numbers. Ultimately the app needs all the Alibris specific data to get the job done and a more generalized TSV wouldn't have that information.

That being said, some potential refactoring is going on with this application right now. Some of that has to do with the fact that I'd like to provide a more generic, compare this spreadsheet of stuff with a given library's holdings application, which would potentially not need to have the data submitted with particular columns. Another possibility would be to fork the code and refactor it to provide a generic create an order from a TSV tool as well. A final option would be to build a application that consumes a file of metadata for items, goes out and provides pricing and availability information from several supplies and then lets the library staff person select what should be ordered. The beauty of this model is that the application could be designed to be smart enough to create seperate orders within WMS for each vendor being ordered from.

Ultimately, there are lots of possibility. My hope in creating this was to get people thinking about the possibilities that having these types of web services available presents and to demonstrate some practical applications of what could be built.

Do you know your HTTP Headers?

In the webinar "Introduction to Web Services" last week, I talked a little bit about HTTP Headers. These are bits of somewhat hidden data which is passed with any HTTP request and response. I consider them hidden because when a user makes a typical HTTP request they don't active send them in the request or see them in the response.

Building three apps to demonstrate the OCLC platform

For the last three months I've been working on the project of building three applications to demonstrate the OCLC cooperative platform. The intention was for any of these applications to be installed easily in the WMS staff interface as potential part of the Acqusitions workflow. The ideas for these apps came out of a brainstorm session I had with my boss and staff who work on the Acquisitions portion of WMS.

Testing Web Services

One of my roles with the Developer Network is to test and teach OCLC web services. While it isn't part of my job to do the regular testing of the services, there are some other things that go hand in hand with it that are: documentation and support for the services, building code examples and teaching people about the services. So when someone reports something as an problem, the first thing I do is try to replicate the issue. When my code isn't working, I fall back to making sure the service performs as anticipated. With RESTful read only services this is pretty simple.

Comments

Http resource test

See also a Firefox extension HTTP Resource Test

From the archives: How we built the WorldCat Facebook App using the WorldCat Search API

Way back in 2007, when Facebook was new and interesting to me, as part of my work in testing how the WorldCat Search API would behave in the real world I wrote a Facebook app that would search WorldCat.  

URL Encoding Special Characters in API requests

This issue of url encoding special characters is something you want to keep in mind with any form input you send to an API. An example of this with WorldCat Search API is if someone puts in a title search like "Kate & Leopold". The ampersand in this will cause the API to throw an error message if you don't URL encode it. The wisest way to handle this is to URL encode any form input that might have any special characters in it. Things like title, keyword are likely suspects.

Two new visualizations for ELAG

I'm doing a presentation on visualizing library data at ELAG this week. I'm showing off some demonstrations that I built for code4lib 2011 and some new demos that I've built for ELAG. The new demonstrations for ELAG take advantage of two OCLC web services.

Follow the OCLC Developer Network:

The OCLC Developer Network supports the use of OCLC Web Services—a set of tools and APIs that expose data and services for WorldCat and our member libraries and partner institutions or companies. learn more »

© 2010 OCLC Domestic and international trademarks and/or service marks of OCLC Online Computer Library Center, Inc. and its affiliates


Powered by Drupal, an open source content management system