kraken-sdk

KrakenAPI client library

Kraken JavaScript SDK

SDK provides simple way to retrieve TV schedule data.

Explore official page and JSDoc for more information.

SDK contains few public classes representing API entities:

  • Channel
  • Broadcast
  • Region

Entities work very similar to jQuery objects. They encapsulate request building, request executing logic and data collection storage.

####Basic example#### 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.

kraken.Region.create().findAll(dataReceivedCallback);

####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 limit().

####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);

####Filtering#### 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);

####Sorting#### 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!