irail-api

0.6.3 • 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' } } ] } }
...]

/irail-api/

    Package Sidebar

    Install

    npm i irail-api

    Weekly Downloads

    22

    Version

    0.6.3

    License

    MIT

    Unpacked Size

    2.58 MB

    Total Files

    15

    Last publish

    Collaborators

    • drupol