buren / stockholm-api

Stockholm API client
MIT License
3 stars 2 forks source link
api-client dataportalen npm-package stockholm-api

StockholmAPI

Simple JavaScript API client for Stockholm API.

Getting started

Requires node >= 8.9.0

npm install --save stockholm-api

Usage

:warning: You must have an API key to make any request. Request one at api.stockholm.se.

Stockholm API keys are split in two ServiceGuideService ("Enhetsdatabasen"/Entity database) and PlaceService ("Platsdatabasen"/Place database) and you request the API keys separately.

Initialize

const StockholmAPI = require('stockholm-api')

const serviceGuideServiceAPIKey = 'your_api_key' // required
const serviceAPI = new StockholmAPI({ ServiceGuideServiceAPIKey: serviceGuideServiceAPIKey })

// or to initialize a PlaceService client
const placeServiceAPIKey = 'your_api_key' // required
const placeAPI = new StockholmAPI({ PlaceServiceAPIKey: placeServiceAPIKey })

Please note that currently there is no way to call both ServiceGuideService and PlaceService using one instance of the client - you have to create two if you need to talk to both.

Fetch all ServiceUnits of type "Utegym"/Outside gym

const id = '96a67da3-938b-487e-ac34-49b155cb277b'
api.getServiceUnits({ ServiceUnitTypes: id })
  .then((data) => {
    console.log('outside gyms', data)
  })

Fetch one ServiceUnit

const id = '2eec914c-595d-4148-85cb-97b35c7694d2'
api.getServiceUnits({ id: id })
  .then((data) => {
    console.log('Grimsta outside gym', data)
  })

Search

const name = 'stockholm'
api.getServiceUnits({ search: { name: name }})
  .then((data) => {
    console.log('stockholm search', data)
  })
  .catch((error) => { console.error(error) })

Parameters are automatically URI encoded

const name = 'Familj och relation'
api.getServiceUnitTypeGroups({ name: name })
  .then((data) => {
    console.log(data)
  })
  .catch((error) => { console.error(error) })

:calendar: Dates returned from the API are in a weird format /Date(1330524285303+0100)/, you can require a helper function that converts it to a JavaScript date object (UTC)

const convertAPIDate = require('./stockholm-api/convert-api-date')
const dateString = '/Date(1330524285303+0100)/'
console.log(convertAPIDate(dateString)) // 2012-02-29T13:04:45.303Z

See the full API client documentation or the Endpoint Schema.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/buren/stockholm-api.

Wish list

Development

Setup

$ git clone https://github.com/buren/stockholm-api
$ cd stockholm-api
$ npm install

then set your API key

export STOCKHOLM_API_SERVICE_GUIDE_SERVICE_API_KEY=your_api_key

then to call most services index endpoint, run

$ npm run kitchen-sink # should print a lot of JSON

See the current API client documentation.

Links

License

The library is available as open source under the terms of the MIT License.