db-vendo-client/readme.md
2017-11-13 00:38:09 +01:00

157 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 has customisations for the following transport networks:
- [Deutsche Bahn](https://en.wikipedia.org/wiki/Deutsche_Bahn) [src](p/db/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)
![ISC-licensed](https://img.shields.io/github/license/derhuerst/hafas-client.svg)
[![chat on gitter](https://badges.gitter.im/derhuerst.svg)](https://gitter.im/derhuerst)
## Background
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 server 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.
## Installing
```shell
npm install hafas-client
```
## Usage
```
const createClient = require('hafas-client')
const dbProfile = require('hafas-client/p/db')
const client = createClient(dbProfile)
// Berlin Jungfernheide to München Hbf
client.journeys('8011167', '8000261', {results: 1})
.then(console.log)
.catch(console.error)
```
```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',
origin: {
type: 'station',
id: '8089100',
name: 'Berlin Jungfernheide (S)',
coordinates: {
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-11-13T00:50:00Z',
departurePlatform: '6',
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
}
},
arrival: '2017-11-13T00:57:00Z',
delay: 0,
line: {
type: 'line',
name: 'S 42',
mode: 'train',
product: 'suburban',
class: 16,
productCode: 4,
productName: 's'
},
direction: 'Ringbahn <-',
arrivalPlatform: '12'
}, {
id: '1|332491|0|80|12112017',
origin: { /* … */ },
departure: '2017-11-13T01:05:00Z',
departurePlatform: '3',
destination: { /* … */ },
arrival: '2017-11-13T01:18:00Z',
delay: 0,
line: { /* … */ },
direction: 'Berlin Ostbahnhof'
}, {
origin: { /* … */ },
departure: '2017-11-13T01:18:00Z',
destination: { /* … */ },
arrival: '2017-11-13T01:26:00Z',
mode: 'walking'
}, {
/* … */
} ]
} ]
```
## Contributing
If you **have a question**, **found a bug** or want to **propose a feature**, have a look at [the issues page](https://github.com/derhuerst/hafas-client/issues).