KrakenAPI client library
Want to see pretty graphs? Log in now!
npm install kraken-sdk
|3||downloads in the last week|
|12||downloads in the last month|
|Last Published By|
|Version||0.2.1 last updated 10 months ago|
|Keywords||tv, schedule, api|
SDK provides simple way to retrieve TV schedule data.
SDK contains few public classes representing API entities:
Entities work very similar to jQuery objects. They encapsulate request building, request executing logic and data collection storage.
Let's look at most basic example - getting list of countries supported by API. This code creates new Region object and gets all records without filtering or sorting.
Limiting response size
You are free to get only first two countries. Let`s modify our example.
kraken.Region.create() .limit(2) .findOne(dataReceivedCallback);
Paging and difference between findOne, findAll and findNext methods
API supports paging and to work with it on client side three data retrieval methods are supported:
- findOne - retrieves first page of data,
- findNext - retrieves next page of data,
- findAll - retrieves all data pages available for your request.
Maximum possible response (page) size is 128 records and default size is the same.
You can set particular page size by using
Specifying fields to retrieve
It's quite important to get only data you really need, so please, specify fields as following.
kraken.config.region = 'NL'; kraken.Channel.create() .fields(kraken.Channel.TITLE, kraken.Channel.ID) .findAll(dataReceivedCallback);
Most advanced tool for specific data retrieval is filtering. In this example we will get only broadcasts with category equal to sports.
kraken.config.region = 'NL'; kraken.Broadcast.create() .filter(kraken.Broadcast.category.isEqual('sports')) .findAll(dataReceivedCallback);
This will get all channels sorted by title:
kraken.config.region = 'NL'; kraken.Channel.create() .sort(kraken.Channel.title, 'desc') .findAll(dataReceivedCallback);
BTW sorting on Broadcast class instances will not work in beta.
Have a bug? Please create an issue on GitHub!