Token Based Anonymous Access For OPDS Feeds
EBC provides APIs for the Catalog Manager to pull book lists to surface to the SimplyE Patron via the Circulation Manager. EBC also provides APIs to request a download link for a Patron to ultimately retrieve the book directly from EBC via the ACS fulfillment URL.
This document describes general requirements for using these External Partner APIs.
Prerequisites
- Patron should be Authenticated with NYU Library first before accessing the OPDS Feeds since Authentication is done outside of the ProQuest EBC Platform.
- SAML Integration: SimplyE authenticates with NYU before accessing the OPDS Feeds
- Token Based Anonymous Access: This service is introduced since SimplyE doesn't directly authenticate with ProQuest EBC Platform
API Security
ProQuest APIs will only be accessible from a set of whitelisted IPs. Users of those APIs will also be required to provide a JWT.
IP Whitelisting
To gain access to the ProQuest APIs, you'll need to submit your IP Address (or addresses) via email to Umamaheswara Gandluru (Umamaheswara.
Gandluru@proquest.com). Please indicate which environment (Test or Production) should be associated to the given IPs.
Token Based Anonymous Access
ProQuest requires a JWT (JSON Web Token) Token in a self-contained way for securely transmitting information between parties as a JSON
object. JWT Tokens are useful in Authorization and Information Exchange between two parties. This Token is required as an Authorization header
for all OPDS Feeds.
How to obtain a token
Please see the PartnerAuthToken service definition below.
How to use a token
The token value must be supplied as HTTP request header.
Header Name JWT Bearer Token as an Authorization Header
Authorization: Bearer <JWT Token>
Header Value The JWT token returned from the PartnerAuthToken service
ProQuest Environments
Current Prod-Setup Test Environment (T) https://ebookcentral-t.ebrary.com
Future Prod-Setup Test Environment (J) https://search.pre.proquest.com
Production https://ebookcentral.proquest.com
ProQuest Services
Common API Response Codes
Status Status Code Status Message
200 OK Successful JSON Response
500 error Expired or invalid JWT token
400 Bad Request N/A
404 NOT_FOUND No Documents Found
500 error Invalid page error:<pagenumber>
Invalid hits per page error:<number>
Service Definitions
Service: PartnerAuthToken
Creates a new user if doesn't exists in ProQuest Platform. Generates JWT Token in a JSON Format.
Method: GET
URL: https://<Env Specific Domain>/auth/ws/auth/PartnerAuthToken/nyulibrary-ebooks?userName=<AffiliationID>
Parameters:
AffiliationID
= This should match ID with SAML Authenticated User ID
Example Response{
"token": "eyJhbGciOiJIUzI1NiJ9.
eyJzdWIiOiJtYWhlc2hnIiwiaXNzIjoiUHJvUXVlc3QiLCJhdWQiOiJTaW1wbHlFIiwiaWF0IjoxNjAyNzk0Mjg1LCJleHAiOjE
2MDI3OTc4ODV9.X_uWRv_IZXqAPllWW6CNMcU2aILVbQBUsDHfyjeHrdA",
"statusCode": 200,
"statusMsg": "OK"
}
Service: BooksCatalog
This service is IP Authenticated with Anonymous Access (which will be done in HQ). Generates OPDS Feed in JSON Format.
Method: GET
URL: https://<Env Specific Domain>/lib/nyulibrary-ebooks/BooksCatalog?page=1&hitsPerPage=10
Parameters:
page
= Default = 1 (MaxLimit = 32767)hitsPerPage
= Default = 10 (MaxLimit = 32767)
Example Response: BooksCatalog.json
Service: BookshelfCatalog
This service takes JWT Bearer Token as an Authorization Header. Generates OPDS Feed in JSON Format.
Method: GET
URL: https://<Env Specific Domain>/lib/nyulibrary-ebooks/BookshelfCatalog
Example Response: BookshelfCatalog.json
Service: DownloadLink
This service takes JWT Bearer Token as an Authorization Header.
For DRM Protected Titles:
Method: GET
URL: https://<Env Specific Domain>/lib/nyulibrary-ebooks/DownloadLink?docID=<document ID>
Parameters:
docId
= The EBC document ID
Example Response
{
"downloadLink": "http://<Env Specific Domain>/fulfillment/URLLink.acsm?
action=enterloan&ordersource=ebl&orderid=492193_217274394&resid=urn%3Auuid%3AE0000000-0000-0000-
0000-000000492193&gbauthdate=Thu%2C+15+Oct+2020+04%3A44%3A55+-0400&dateval=1603982695&rights=%
24lrt%2386398%24%24cpy%230%2386398%24%24prn%230%2386398%
24&gblver=4&auth=e7ccf800938b6233900d012be62d91f70cdb88bd",
"statusCode": 200,
"statusMsg": "OK"
}
For DRM Free Titles:
Method: GET
URL: https://<Env Specific Domain>/lib/nyulibrary-ebooks/DownloadLink?docID=<document ID>
Parameters:
docId
= The EBC document ID
Response : Complete Book Content would be flushed on to the SimplyE App