almarestapi-lib
v1.1.9
Published
A Node.js library for calling Ex Libris Alma REST APIs
Downloads
36
Readme
Alma REST API Node Library
This library makes it easy to call the Ex Libris Alma REST APIs in Node.js.
Installation
npm install almarestapi-lib --save
API Key
The library expects that the API key be available in an environment variable called ALMA_APIKEY
. The API host can be optionally stored in an environment variable called ALMA_APIHOST
. The defaut is https://api-na.hosted.exlibrisgroup.com/almaws/v1.
You can call your script with the API key in the command line, as follows:
ALMA_APIKEY=l7xxabcdefghijklmnopqrstuvwxyz node test.js
Alternatively, the key and/or path can be set using the setOptions
method, as follows:
const alma = require('almarestapi-lib');
alma.setOptions('l7xx...');
Usage
To being using the library, require it at the top of your Node file:
var alma = require ('almarestapi-lib');
Async/Await
The library supports usage of async/await
. The functions which return a Promise end in the letter 'p', i.e. getp
.
var alma = require ('almarestapi-lib');
async function main() {
try {
console.log(await alma.getp('/users/joshw?view=brief'));
} catch (e) {
console.error('ERROR: ', e.message);
}
}
main();
Working with JSON
The following functions work with JSON:
Retrieving JSON with getp
await alma.getp('/users/joshw?view=brief');
Updating JSON with putp
var user = await alma.getp('/users/joshw');
user.middle_name = 'Max';
console.log(await alma.putp('/users/joshw', user);
Creating a record with postp
var user = { first_name: 'Josh', last_name: 'Testman', account_type:{value: 'INTERNAL'}};
console.log(await alma.postp('/users', user));
Deleting with deletep
alma.deletep('/users/4101979450000561');
Working with XML
It is preferable to work with XML when calling APIs which relate to BIB records. You can use the XML functions to work with these APIs.
Retrieving a BIB record with getXmlp
var bib = await alma.getXmlp('/bibs/9981140900561');
Updating and creating a BIB record
You can use the putXmlp
and postXmlp
functions to update and create BIB records respectively.
var dom = require('xmldom').DOMParser;
var xpath = require('xpath');
const XPATH_TITLE = '/bib/record/datafield[@tag="245"]/subfield[@code="a"]';
var bib = await alma.getXmlp('/bibs/991439870000541');
bib = new dom().parseFromString(bib);
xpath.select(XPATH_TITLE, bib)[0]
.firstChild.data='History curatorship';
console.log(await alma.putXmlp('/bibs/991439870000541', bib));
Issues
Feel free to report issues in this repository.