Transport ~HACKnight

The project provides a simple RESTful API for Swiss train connections and departure times. The original goal was to make the cumbersome XML-RPC protocol used by SBB easier accessible to more developers. In 2017 the backend of the Transport API was switched to a service provided by search.ch.

{ hacknight challenges }

Use the online documentation to create your own data analysis or visualization. You can find code samples here and example apps here - many of which are open source as well

Join the discussion group and look through the GitHub issues to see the questions being discussed. Respond to the request from another user, or suggest your own improvement to the API.

Deploy your own open transport data server following the instructions in the source code. Use it to make code-level improvements to the service, and start a Pull Request with your results!

The backend of the Transport API changed on 31 July 2017. Read more on opendata.ch.

Transport API

The Transport API allows interested developers to build their own applications using public timetable data, whether they're on the web, the desktop or mobile devices.

Feel free to fork this project implement your own ideas or send pull requests.

Installation

You can install the Transport API on your own server, however we recommend the usage of transport.opendata.ch.

$ git clone git://github.com/OpendataCH/Transport.git transport
$ cd transport
$ composer install

Also make sure, the directory transport/var/ is writable.

If you cloned the repository inside your document root, the API is now accessible at http://localhost/transport/web/api.php/v1/. However we recommend setting the document root to transport/web/ and using the provided .htaccess to route API requests to api.php.

Or you can start it with the PHP's built-in webserver (not recommended for a production setup, but the easy way to get started locally)

php -S localhost:8000

And then access it with http://localhost:8000/web/api.php

Configuration

To define your own configuration for the API copy the file config.php.sample to config.php and override the variables you want to change.

Statistics

You can get some basic statistics for the API by configuring a Redis server in your configuration ($redis) and have a look at http://localhost/transport/web/stats.php.

Development

XSD for the XML Fahrplan API is available here: hafasXMLInterface.xsd

Troubleshooting

Missing package php-xml

If you're running Ubuntu and composer install produces the error message

Your requirements could not be resolved to an installable set of packages.

you can try to install the package php-xml using the command

sudo apt install php-xml

This is a companion discussion topic for the original entry at https://hacknight.dinacon.ch/project/14