db-hafas

    5.0.2 • Public • Published

    db-hafas

    A client for the German Railways (DB). It acts as a consistent and straightforward interface on top of a verbose API.

    This project is actually a thin wrapper around hafas-client@5. Its docs document the API in general.

    db-rest architecture diagram

    npm version ISC-licensed chat on gitter support Jannis via GitHub Sponsors

    Installing

    npm install db-hafas

    API

    Check the docs for hafas-client@5 as well as its DB-specific customisations.

    Getting Started

    const createHafas = require('db-hafas')
     
    const hafas = createHafas('my-awesome-program')

    As an example, we will search for a route from Berlin Jungfernheide to München Hbf. To get the station IDs, use locations(query, [opt]).

    // Berlin Jungfernheide to München Hbf
    hafas.journeys('8011167', '8000261', {results: 1})
    .then(({journeys}) => console.log(journeys[0]))
    .catch(console.error)

    The output will be an array of journey objects in the Friendly Public Transport Format 1.2.1 format:

    [ {
        type: 'journey',
        legs: [ {
            tripId: '1|300793|27|80|27032019',
            origin: {
                type: 'stop',
                id: '8089100',
                name: 'Berlin Jungfernheide (S)',
                location: {
                    type: 'location',
                    id: '8089100',
                    latitude: 52.530408,
                    longitude: 13.299424
                },
                products: {
                    nationalExpress: false,
                    national: false,
                    regionalExp: false,
                    regional: true,
                    suburban: true,
                    bus: true,
                    ferry: false,
                    subway: true,
                    tram: false,
                    taxi: false
                },
                station: {
                    type: 'station',
                    id: '8011167',
                    name: 'Berlin Jungfernheide',
                    location: { /* … */ },
                    products: { /* … */ }
                }
            },
            departure: '2019-03-27T14:10:00.000+01:00',
            departureDelay: 0,
            departurePlatform: '6',
            destination: {
                type: 'stop',
                id: '8089073',
                name: 'Berlin Südkreuz (S)',
                location: { /* … */ },
                products: { /* … */ },
                station: { /* … */ }
            },
            arrival: '2019-03-27T14:30:00.000+01:00',
            arrivalDelay: 0,
            arrivalPlatform: '12',
            direction: 'Berlin Südkreuz (S)',
            line: {
                type: 'line',
                id: 's-42',
                fahrtNr: '42133',
                name: 'S 42',
                public: true,
                mode: 'train',
                product: 'suburban',
                operator: {type: 'operator', id: 's-bahn-berlin', name: 'S-Bahn Berlin'}
            },
            cycle: {min: 300, max: 300, nr: 25}
        }, {
            origin: { /* … */ },
            departure: '2019-03-27T14:30:00.000+01:00',
            destination: { /* … */ },
            arrival: '2019-03-27T14:37:00.000+01:00',
            public: true,
            walking: true,
            distance: 622
        }, {
            tripId: '1|245684|0|80|27032019',
            origin: { /* … */ },
            departure: '2019-03-27T14:37:00.000+01:00',
            departureDelay: 0,
            departurePlatform: '3',
            destination: {
                type: 'stop',
                id: '8000261',
                name: 'München Hbf',
                location: { /* … */ },
                products: { /* … */ }
            },
            arrival: '2019-03-27T19:06:00.000+01:00',
            arrivalDelay: 0,
            arrivalPlatform: '18',
            direction: 'München Hbf'
            line: {
                type: 'line',
                id: 'ice-1601',
                fahrtNr: '1601',
                name: 'ICE 1601',
                public: true,
                mode: 'train',
                product: 'nationalExpress',
                operator: { /* … */ }
            },
        } ],
        refreshToken: '',
        price: {amount: null, hint: 'No pricing information available.'}
    } ]

    Similar Projects

    • Fahrplan.js – "A JavaScript client for Deutsche Bahn's timetable API"
    • db-prices – Find the cheapest routes using the DB Sparpreise API.
    • db-stations – An offline list of all DB stations.

    Also check hafas-client's related libs.

    Contributing

    If you have a question, found a bug or want to propose a feature, have a look at the issues page.

    Install

    npm i db-hafas

    DownloadsWeekly Downloads

    95

    Version

    5.0.2

    License

    ISC

    Unpacked Size

    8.63 kB

    Total Files

    7

    Last publish

    Collaborators

    • derhuerst