diff --git a/readme.md b/readme.md index 9807b0d3..f6d51d5e 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,9 @@ # hafas-client -**A client for HAFAS public transport APIs**. Sort of like [public-transport-enable](https://github.com/schildbach/public-transport-enabler), but with a smaller scope. It also contains customisations for the following transport networks: +**A client for HAFAS public transport APIs**. Sort of like [public-transport-enabler](https://github.com/schildbach/public-transport-enabler), but with a smaller scope. It also contains customisations for the following transport networks: -- [Deutsche Bahn](https://en.wikipedia.org/wiki/Deutsche_Bahn) – [src](p/db/index.js) -- [Berlin public transport](https://en.wikipedia.org/wiki/Verkehrsverbund_Berlin-Brandenburg) – [src](p/vbb/index.js) +- [Deutsche Bahn](https://en.wikipedia.org/wiki/Deutsche_Bahn) – [src at `p/db`](p/db/index.js) +- [Berlin public transport](https://en.wikipedia.org/wiki/Verkehrsverbund_Berlin-Brandenburg) – [src at `p/vbb`](p/vbb/index.js) [![npm version](https://img.shields.io/npm/v/hafas-client.svg)](https://www.npmjs.com/package/hafas-client) [![build status](https://img.shields.io/travis/derhuerst/hafas-client.svg)](https://travis-ci.org/derhuerst/hafas-client) @@ -15,7 +15,7 @@ There's [a company called HaCon](http://hacon.de) that sells [a public transport management system called HAFAS](https://de.wikipedia.org/wiki/HAFAS). It is [used by companies all over Europe](https://gist.github.com/derhuerst/2b7ed83bfa5f115125a5) to serve routing and departure information for apps. All those endpoints are similar, with the same terms and API routes, but have slightly different options, filters and enable features. -`hafas-client` contains all logic for communicating with these, as well as serialising from and parsing to [FPTF](https://github.com/public-transport/friendly-public-transport-format). Endpoint-specific customisations increase the quality of the returned data. +`hafas-client` contains all logic for communicating with these, as well as serialising from and parsing to [*Friendly Public Transport Format (FPTF)* `1.0.1`](https://github.com/public-transport/friendly-public-transport-format/blob/1.0.1/spec/readme.md). Endpoint-specific customisations (called "profiles" here) increase the quality of the returned data. ## Installing @@ -31,6 +31,7 @@ npm install hafas-client const createClient = require('hafas-client') const dbProfile = require('hafas-client/p/db') +// create a client with Deutsche Bahn profile const client = createClient(dbProfile) // Berlin Jungfernheide to München Hbf @@ -39,116 +40,126 @@ client.journeys('8011167', '8000261', {results: 1}) .catch(console.error) ``` +The returned [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/promise) will resolved with an array of one `journey` in the [*FPTF* `1.0.1`](https://github.com/public-transport/friendly-public-transport-format/blob/1.0.1/spec/readme.md). + ```js [ { - origin: { - type: 'station', - id: '8089100', - name: 'Berlin Jungfernheide (S)', - coordinates: { - latitude: 52.530291, - longitude: 13.299451 - }, - products: { /* … */ } - }, - departure: '2017-11-13T01:00:00Z', - - destination: { - type: 'station', - id: '8000261', - name: 'München Hbf', - coordinates: { - latitude: 48.140364, - longitude: 11.558735 - }, - products: { /* … */ } - }, - arrival: '2017-11-13T09:39:00Z', - parts: [ { - id: '1|1436339|0|80|12112017', - + id: '1|100067|48|81|17122017', origin: { type: 'station', id: '8089100', name: 'Berlin Jungfernheide (S)', - coordinates: { + location: { + type: 'location', latitude: 52.530291, longitude: 13.299451 }, - products: { - nationalExp: false, - national: false, - regionalExp: false, - regional: true, - suburban: true, - bus: true, - ferry: false, - subway: true, - tram: false, - taxi: false - } + products: { /* … */ } }, - departure: '2017-11-13T00:50:00Z', - departurePlatform: '6', - + departure: '2017-12-17T17:05:00.000+01:00', + departurePlatform: '5', destination: { type: 'station', - id: '8089047', - name: 'Berlin Westkreuz', - coordinates: { - latitude: 52.500752, - longitude: 13.283854 - }, - products: { - nationalExp: false, - national: false, - regionalExp: false, - regional: true, - suburban: true, - bus: true, - ferry: false, - subway: false, - tram: false, - taxi: false - } + id: '8089118', + name: 'Berlin Beusselstraße', + location: { /* … */ }, + products: { /* … */ } }, - arrival: '2017-11-13T00:57:00Z', - delay: 0, - + arrival: '2017-12-17T17:08:00.000+01:00', + arrivalPlatform: '1', line: { type: 'line', - name: 'S 42', + id: '41172', + name: 'S 41', + public: true, mode: 'train', product: 'suburban', class: 16, - productCode: 4, - productName: 's' + productCode: 4 }, - direction: 'Ringbahn <-', - arrivalPlatform: '12' + direction: 'Ringbahn ->' + }, /* … */ { + origin: { + type: 'station', + id: '730749', + name: 'Berlin Hauptbahnhof (S+U), Berlin', + location: { + type: 'location', + latitude: 52.526461, + longitude: 13.369378 + }, + products: { /* … */ } + }, + departure: '2017-12-17T17:25:00.000+01:00', + destination: { + type: 'station', + id: '8098160', + name: 'Berlin Hbf (tief)', + location: { /* … */ }, + products: { /* … */ } + }, + arrival: '2017-12-17T17:33:00.000+01:00', + mode: 'walking', + public: true }, { - id: '1|332491|0|80|12112017', - - origin: { /* … */ }, - departure: '2017-11-13T01:05:00Z', - departurePlatform: '3', - - destination: { /* … */ }, - arrival: '2017-11-13T01:18:00Z', - delay: 0, - + id: '1|70906|0|81|17122017', + origin: { + type: 'station', + id: '8098160', + name: 'Berlin Hbf (tief)', + location: { /* … */ }, + products: { /* … */ } + }, + departure: '2017-12-17T17:37:00.000+01:00', + departurePlatform: '1', + destination: { + type: 'station', + id: '8000261', + name: 'München Hbf', + location: { /* … */ }, + products: { /* … */ } + }, + arrival: '2017-12-17T22:45:00.000+01:00', + arrivalPlatform: '13', line: { /* … */ }, - direction: 'Berlin Ostbahnhof' - }, { - origin: { /* … */ }, - departure: '2017-11-13T01:18:00Z', - destination: { /* … */ }, - arrival: '2017-11-13T01:26:00Z', - mode: 'walking' - }, { - /* … */ - } ] + direction: 'München Hbf' + } ], + origin: { + type: 'station', + id: '8089100', + name: 'Berlin Jungfernheide (S)', + location: { + type: 'location', + latitude: 52.530291, + longitude: 13.299451 + }, + products: { + nationalExp: false, + national: false, + regionalExp: false, + regional: true, + suburban: true, + bus: true, + ferry: false, + subway: true, + tram: false, + taxi: false + } + }, + departure: '2017-12-17T17:05:00.000+01:00', + destination: { + type: 'station', + id: '8000261', + name: 'München Hbf', + location: { /* … */ }, + products: { /* … */ } + }, + arrival: '2017-12-17T22:45:00.000+01:00', + price: { + amount: null, + hint: 'No pricing information available.' + } } ] ```