JavaScript client for Musikki's Music API
First, include this module and create an instance:
$ npm install musikki
const Musikki = require('musikki');
let musikki = new Musikki({ appid: yourAppID, appkey: yourAppKey });This implementation abstracts Music API's endpoints and methods with a familiar javascript chaining syntax:
musikki.endpoint(mkid).method(filter, paging);All parameters are optional or required, depending on the specific endpoint and method called (see API documentation for more information)
endpoint — A Music API endpoint, like artist or video
method — A Music API endpoint method, like search or info
mkid — Musikki ID of a specific resource
filter — An object containing the filter parameters specific to the given method
paging — An object containing the pagination options (page number and results limit)
To find all artists that match a given name
musikki.artists().search({ 'artist-name': 'slowdive' })
.then(console.log);musikki.artists().search({ 'artist-name': 'the' }, { limit: 100, page: 10 })
.then(console.log);To obtain info about a given artist
musikki.artists(100038744).info()
.then(console.log);Method parameter (filter) names are automatically transformed (using lodash.kebabCase) to the correct format used by the music API so you can pick any style that fits your code best.
musikki.artists().search({ artistName: 'morbid angel', label_name: 'earache' })
.then(console.log);Any error the library encounters during usage will be wrapped and passed in a rejected promise so you can .catch it.
musikki.artists().search()
.then(console.log)
.catch(console.error);{ status: 400, message: 'Bad Request', payload: { error: { message: 'invalid query!', detail: [Object] } } }