Just a follow-up from a few weeks ago regarding searching and requesting 
through the Alma/Primo API.

Thank you to Jonathan Rochkind, Brian Meuse, Tom Hutchinson, Kate Deibel, and 
Chad Nelson for your help.

I thought I'd report back on my progress.

It was the case that we needed to put in a support ticket to Ex Libris to turn 
on the Primo API.

We all know that requesting a book is a several step process, and I boiled it 
down to 6 API calls from start to finish (some with user interaction in between)

1. Search Query:
GET 
https://api-na.hosted.exlibrisgroup.com/primo/v1/pnxs?q=title,contains,flopsy 
bunnies&lang=eng&offset=1&limit=10&view=full&vid=STTHOMAS&scope=stthomas&apikey={{apikey}}

2. After user makes selection: Get BIB
GET 
https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/?view=full&expand=p_avail,e_avail,d_avail
 &nz_mms_id={{mms_id}}&format=json&apikey={{apikey}}

3. Get Holding Link
GET 
https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/{{mms_id}}/holdings?format=json&apikey={{apikey}}

4. Get PID
GET 
https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/{{mms_id}}/holdings/{{holding_id}}/items/?format=json&apikey={{apikey}}

5. Get User info (after auth, of course!):
GET 
https://api-na.hosted.exlibrisgroup.com/almaws/v1/users/{{user_id}}?user_id_type=all_unique&view=full&expand=none&apikey={{apikey}}&format=json

6. Perform request by sending a request object
POST 
https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/{{mms_id}}/holdings/{{holding_id}}/items/{{item_pid}}/requests?user_id={{user_id}}&format=json&apikey={{apikey}}
 (and send along a request object in the body)

Of course this only deals with local holdings. We are in a consortium and I 
have barely scratched the surface on making a resource sharing request.

-Chad
Chad Kluck
Web Developer
University of St. Thomas Libraries 
clkl...@stthomas.edu
(651) 962-5416
University of St. Thomas | stthomas.edu 

-----Original Message-----
From: Code for Libraries [mailto:CODE4LIB@LISTS.CLIR.ORG] On Behalf Of Chad 
Nelson
Sent: Monday, December 18, 2017 11:13 AM
To: CODE4LIB@LISTS.CLIR.ORG
Subject: Re: [CODE4LIB] Experience with Primo API

HI Chad,

At Temple we have started work on a Ruby client for the Primo PNX api -
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftulibraries%2Fprimo&data=02%7C01%7Cclkluck%40STTHOMAS.EDU%7C701882f69211469d422308d5463abdc0%7Ca081ff79318c45ec95f338ebc2801472%7C1%7C0%7C636492140470303661&sdata=tSllFSfZxBSxDILro9jdVxJbTRPOLUQpXjEG1qZP1Us%3D&reserved=0
 . It's still a work in progress, but will do a basic search.

We only launched with Primo earlier this year, but they encouraged us to only 
use the PNX  REST api, and to not use the X-Services. We've found the Primo PNX 
api to be a bit slow in producion, and REALLLLLY slow coming from the sandbox.

One thing I would note about your API url is that you appear to be using the 
European servers, "api-eu" but you will need to be using the North American 
servers, api-na, or else your API key won't work as expected.
Maybe you've already sussed that, but that threw me for a loop when we first 
started using it.

Good luck :) ,

Chad Nelson
Temple University Libraries


On Fri, Dec 15, 2017 at 10:51 PM Kluck, Chad L. <clkl...@stthomas.edu>
wrote:

> We're wondering if anyone has experience, and documentation, with the 
> Primo API. We have so far developed with the Alma API and other APIs 
> so I'm not asking about API GET/POST/PUT requests or CURL. However, 
> since the Primo API for some of the search is listed as "Under 
> Construction" it is harder to work our way around what we should expect for 
> received data.
>
>
> We submitted a support case for some help from Ex Libris, but if 
> anyone has a repository, or some docs that would help. We're basically 
> trying to do regular search queries, like feed 
> q=any,contains,immortality%20kundera
> (see below)
>
>
> We saw in the Code4Lib archive that the Primo API was IP restricted 
> back in 2014, but was wondering if that is still the case.
>
>
> Submitted to Ex Libris Sales Force
>
> Case Title: API for Primo - known item searches
> Description:
> We need help getting a functioning query with the Primo API. Our use 
> case is that we are working with a company to develop a chatbot which 
> can take a natural language query, get a list of results from Primo 
> via API (using author or title search), and check our holdings and 
> availability and let the user know if it is available and make a 
> request. The second part seems to be accomplished via the Bibs API, 
> but getting the MMS IDs of a set of results from a Primo search seems 
> to require the Primo API. We have not been able to get results from our test 
> queries.
>
> We have the API key set up for our API application StthomasAI with 
> permissions to use the Primo Search (under const.) API. We have tried 
> using both Brief Search and Delivery Service Search but are not having luck.
>
> For example:
>
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapi-e
> u.hosted.exlibrisgroup.com%2Fprimo%2Fv1%2Fsearch%3Fvid%3DSTTHOMAS%26ta
> b%3Ddefault_tab%26scope%3Dstthomas%26q%3Dany%252Ccontains%252Cimmortal
> ity%2520kundera%26lang%3Deng%26offset%3D0%26limit%3D10%26sort%3Drank%2
> 6pcAvailability%3Dtrue%26conVoc%3Dtrue%26apikey%3D%5B*************&dat
> a=02%7C01%7Cclkluck%40STTHOMAS.EDU%7C701882f69211469d422308d5463abdc0%
> 7Ca081ff79318c45ec95f338ebc2801472%7C1%7C0%7C636492140470303661&sdata=
> %2FAA65TcX1NPER5zbRpCLa%2FxA7BkzxODqKoVyYBAT0k4%3D&reserved=0]
>
>
> Thanks!<
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapi-e
> u.hosted.exlibrisgroup.com%2Fprimo%2Fv1%2Fsearch%3Fvid%3DSTTHOMAS%26ta
> b%3Ddefault_tab%26scope%3Dstthomas%26q%3Dany%252Ccontains%252Cimmortal
> ity%2520kundera%26lang%3Deng%26offset%3D0%26limit%3D10%26sort%3Drank%2
> 6pcAvailability%3Dtrue%26conVoc%3Dtrue%26apikey%3Dl7xx95e1392be88248b4
> 938710ae279a414d&data=02%7C01%7Cclkluck%40stthomas.edu%7C515ce934bafa4
> 0bfbef608d543104819%7Ca081ff79318c45ec95f338ebc2801472%7C1%7C0%7C63648
> 8659564215396&sdata=9hPnbkelNXwLgH7ASASrCbItNzWx%2F2cK3Hml0J9LjwI%3D&r
> eserved=0
> >
>
>
> -Chad
>
> Chad L. Kluck
> Web Developer
> University of St. Thomas Libraries
> (651) 962-5416
>
> Sent from Outlook Web Access
> [University of St. Thomas : All for the Common Good]< 
> http://www.stthomas.edu/e>
>

Reply via email to