dk-sdk v1.0.1
OneAPI SDK
This is the SDK for the LoTR OneAPI.
The SDK mirrors the REST API.
There are five key resources - Book, Movie, Character, Quote and Chapter.
Installation
npm install dk-sdk
Usage
let { OneAPI } = require('dk-sdk');
const SECRET = "<YOUR SECRET>";
let cli = new OneAPI(SECRET);
function printCh(){
let cursor = cli.getChapters({limit:5})
const chapters = await cur.next()
console.log(chapters)
}
printCh();At the high level, the enumeration of any resource can be got with cli.getResources style API, eg (cli.getBooks()).
This always returns a cursor, you can start querying the values by calling cursor.next() which returns the list of results until they run out at which point in time an empty list ([]) is returned.
The methods exposed by the client,
getBooks({args})
getBookById(id)
getBookChapters(id, {args})
getChapters({args})
getChapterById(id)
getMovies({args})
getMovieById(id)
getMovieQuotes(id, {args})
getQuotes({args})
getQuoteById(id)
getCharacters({args})
getCharacterById(id)
getCharacterQuotes(id, {args})Here {args} is of the following form, {limit:number, filter:FilterObj, sort: SortObj}
limit: sets the number of results per call to the cursorfilter: Asks the server to filter the results based on FilterObj (see below)sort: Asks the server to sort the results based on SortObj
Here is a sample filter "kitchen sink",
let FilterObj = {
match:{ // =
name: 'foo'
},
reject:{ // !=
name: 'bar'
},
includes:{ // in
race:['x', 'y']
},
excludes:{ // not in
race:['a', 'b']
},
lt: { // <
budgetInMillions: 100
},
gt: { // >
academyAwardWins: 0
},
eq: { // ==
academyAwardWins: 2
},
like: { // regex
name : 'hello'
}
}And here is a sample sort object,
SortObj = {
name : 'asc', // or 'desc'
}Then there is the API to fetch a specific resource instance i.e. by an id then you have cli.getResourceById.
eg (cli.getBookById(id)). These return a promise that resolves to an object of the specific resource type (eg. Book or Quote).
Look into the examples.js file for more usage information.