Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

irail-api

0.6.2 • Public • Published

iRail-api

Query the iRail.be API. Fully JS promises ready.

irail.be is a plaform providing open data about train transportation in Belgium. It has an API and this library helps you to query it.

To improve performances, requests caching is enabled by default when it's needed, using the host OS cache(tmp) directory.

Usage

var irailApi = require('irail-api');
 
// Get the stations.
irailApi.getStations().then(console.log);

Available methods

  • getStations
  • getLiveboard
  • getConnections
  • getVehicle
  • getDisturbances
  • getLogs

Each methods takes a object of parameters. The list of parameters for each method can be found on the irail API documentation site.

The default parameters are:

  • format set to json
  • lang set to en

Goodies

This package provides extra methods and information that are not provided on iRail by default.

To get train stations and their associated lines, you can use the helpers.

var irailApi = require('irail-api');
 
// Get the stations with their lines.
irailApi.getStations().then(irailApi._processStations).then((stations) => {
  return irailApi.helpers.addStationLines(stations);
}).map(console.log);

Output:

[{ id: 'BE.NMBS.008884541',
  locationX: '3.856543',
  locationY: '50.449827',
  '@id': 'http://irail.be/stations/NMBS/008884541',
  standardname: 'Quaregnon',
  name: 'Quaregnon',
  wikidata:
   { connecting_line:
      [ { exact_match:
           { type: 'uri',
             value: 'http://irail.be/stations/NMBS/008884541' },
          lineLabel:
           { 'xml:lang': 'en',
             type: 'literal',
             value: 'Line 97 (Infrabel)' },
          lineUrl:
           { type: 'uri',
             value: 'http://www.wikidata.org/entity/Q1891285' } } ] } }
...]

It is possible to chain them as well

var irailApi = require('irail-api');
 
irailApi.getStations().then(irailApi._processStations).then((stations) => {
  return irailApi.helpers.addStationLines(stations);
}).then((stations) => {
  return irailApi.helpers.addAdjacentStations(stations);
}).map(console.log);

Output:

[{ id: 'BE.NMBS.008884541',
   locationX: '3.856543',
   locationY: '50.449827',
   '@id': 'http://irail.be/stations/NMBS/008884541',
   standardname: 'Quaregnon',
   name: 'Quaregnon',
   wikidata: 
    { connecting_line: 
       [ { exact_match:
            { type: 'uri',
              value: 'http://irail.be/stations/NMBS/008884541' },
           lineLabel:
            { 'xml:lang': 'en',
              type: 'literal',
              value: 'Line 97 (Infrabel)' },
           lineUrl:
            { type: 'uri',
              value: 'http://www.wikidata.org/entity/Q1891285' } } ],
      adjacent_station:
       [ { exact_match:
            { type: 'uri',
              value: 'http://irail.be/stations/NMBS/008884541' },
           adjacent_stationLabel:
            { 'xml:lang': 'en',
              type: 'literal',
              value: 'Jemappes railway station' },
           adjacent_stationUrl:
            { type: 'uri',
              value: 'http://www.wikidata.org/entity/Q2411271' } },
         { exact_match:
            { type: 'uri',
              value: 'http://irail.be/stations/NMBS/008884541' },
           adjacent_stationLabel:
            { 'xml:lang': 'en',
              type: 'literal',
              value: 'Saint-Ghislain railway station' },
           adjacent_stationUrl:
            { type: 'uri',
              value: 'http://www.wikidata.org/entity/Q3097536' } } ] } }
...]

install

npm i irail-api

Downloadsweekly downloads

49

version

0.6.2

license

MIT

repository

githubgithub

last publish

collaborators

  • avatar