2. API opportunities API e.g.
Application:
Open Library Data
Program:
“FindIt Catalog”
Interaction:
Application hosts
images. It accepts
requests for an image
with ISBN match.
Program can display
the book cover image
if the application
provided one.
4. API opportunities
Application:
Internet Archive
digital collection
Program:
“FindIt Catalog”
Interaction:
Application hosts
digitized books. It
accepts requests
from programs.
Program can display a
link to the digitized
book.
API e.g.
5. API opportunities
An “API” is a defined interaction between that part of a
computer application which accepts requests from
other programs and responds by providing some data.
Application Program Interface
or
Application Program Interaction
API basics
6. API opportunities API Technical Stuff
Impress your colleagues
Just four simple techy things
to know about
Application Program Interactions
7. API opportunities
In order for a program to interact with an API, it must follow well
defined, well documented syntax for making requests.
We saw the book cover in the library catalog. That API request
looks like this …
https://covers.openlibrary.org/b/isbn/0300120273-M.jpg
8. API opportunities
Secondly, note that the response from the application is data…
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>Two of our famous Belgian Waffles with real maple syrup</description>
<calories>650</calories>
</food>
</breakfast_menu>
9. API opportunities
FoLok
or as JSON data …
{"request_date":"2017-11-14 15:26:52.195","search_value":[
{"operator":"contains","field":"Index","value":"c"}], "search_type":"search","results":
[{"lastName":"Cadmus","displayDate":"1904-1999","index":"C","id":1144,"alphaSort":
"Cadmus, Paul","isArtist":1, "firstName":"Paul","displayName": "Paul
Cadmus"},{"lastName":"Cain","index":"C","id":2934, "alphaSort":"Cain,
David","isArtist":1,"firstName":"David","displayName":"David
Cain"},{"lastName":"Calder","displayDate": "(b. 1898, Lawnton, Pennsylvania - d. 1976, New
York, New York)","index":"C","id":5616,"nationality": "American", "alphaSort":"Calder,
Alexander","isArtist":1,"firstName":"Alexander","displayName":"AlexanderCalder"}],
"total_results":125}
10. API opportunities
• Some APIs only accept requests from authorized programs.
• In that case you have to register for an “API Key” first.
• The “key” is sent as part of the request.
…/American/5616/Stella/t4jue8Y#%kwnYT&20171114M
API Key
11. API opportunities
Lastly, your program will need to have coding that tells it how to
parse the data and do something useful with it …
def make_openlib_holding(book):
holding = {
'LIBRARY_NAME': 'IA', 'LOCATION_NAME': 'OL’,
'LOCATION_DISPLAY_NAME': 'OL: Open Library’ }
if book.keys():
holding['ITEMS'][0]['DISPLAY_CALL_NO'] =
book.get('identifiers', {}).get('openlibrary', [])[0]
holding[‘DATA = book.get('url', '')
return holding
12. API opportunities @ Watson
Benefits of using APIs @ the Watson Library
• Help the library / museum staff do their work
• Improve usability of our services for library patrons
• APIs might be used advocate the value of the library to the
museum and the community by providing informative
‘dashboards’
13. API opportunities
Types of info we can get or update from Sierra
RETRIEVE ADD or DELETE
UPDATE
• Bibliographic data
• Item data
• Order data
• Patron data
• Checkouts
• Fines
• Holds
@ Watson
• Hold data
• Patron names
• Addresses
• Phone numbers
• Emails.
18. API opportunities
What’s next?
• Let’s learn what APIs are offered.
• We can network with the Sierra and TMS community of API
developers from other libraries
• We’ll form a group of library staff to brainstorm ideas –
and set priorities for which ones we might try first.
• APIs are powerful, and free, let’s use them!
Use APIs
20. API opportunities
Image credits
[14] Alma Dashboard
Retrieved from http://discoveralma.com/classes/819hdh90faspaFJ0aKD9/classes_secure_dashboard_102.html
[15] LibAnalytics Dashboard
Retrieved from https://buzz.springshare.com/springynews/news-26/laninsight
[19] To Decide the Question
John George Brown (American (born England), Durham 1831–1913 New York)
Retrieved from https://www.metmuseum.org/art/collection/search/10241
A quick story. When I talk to my wife about what I do at the library, I talk a lot about ‘metadata’. Her reaction is ‘no more please!’
One the other hand, she thinks what we have done with APIs is pretty cool. So I hope you will too.
I’ll show you a few examples of APIs in action. These are from the George Washington University library catalog.
This first example involves the Open Library. Their application has a treasure trove of book covers.
Our library catalog program interacts with their a application. It requests and receives FREE cover images to display.
Another example is the Google books application. Although you can query our catalog program by OCLC number.
if we don’t have a match, our program interacts with the Google books application to retrieve and display the books description.
My last example is from the Internet Archive digitized book application. Our catalog program interacts with their application to look for
a free digitized copy of a book -- and if one is available we provide a pseudo 'holding’ link. That says Internet Archive Open Library, and there is a button the patron can click to see the book.
You may have noticed I kept saying our program interacts with such and such application? My definition of an API is …
I prefer to say interaction because that emphasizes the request and response concept. That’s the basic, general idea.
I want to talk about using API’s at the Watson, library but first I really think there are some general things you should know if you want to have a conversation about API’s. I thought about skipping this part, but its important for your general understanding.
First of all, its not too difficult to have your program start the interaction by requesting data from an application.
You just need to be sure to use proper syntax like this example ..
OK, Secondly note that the response from the application is data not fit for human consumption… such an XML data set See what I did here?
Belgian waffles definitely fit for consumption. This XML structure? Not so much.
Another typical application response to a request is going to be the “JSON” or javascript object notation like this.
The main take away here is that it’s a data stream intended for a program, not a person.
Third, you should be able to use terms like, “We have an API key’. That’s just a code that shows your program is registered, and authorized to interact with the application.
WorldCat, OCLC, Summon, I’m sure Sierra, require API keys.
This is the catch. You need to know how to code a program to parse the XML or JSON data and do something with it.
This is Python code to add a holding line to the available items that says Open Library.
Is it worth going through the trouble? Here are a few benefits. (see bullet points)
I found out that these are a few things we can retrieve and or update using the sierra api. (see bullet list)
Like I said, I can imagine developing a sort of library ‘dashboard’. Maybe one intended for administrators and library staff.
There could be a ‘public’ version versus a staff version.
There are TMS/ emuseum APIs also …
.and there both the Sierra APIs and TMS APIs are well documented. Not only that, there seems to be a good network of developers sharing what they have done with APIs!