Skip to content

amuttsch/go-db-api

Repository files navigation

DB Open Data in Go

GoDoc Build Status Go Report Card License

This client library enables you to easily access supported APIs available from Deutsche Bahn Open API from any Go application.

Currently supported:

API Status
Station Data v2 Complete

Installation

$ go get -u github.com/amuttsch/go-db-api

Or via Go modules import

import (
   github.com/amuttsch/go-db-api
)

In order to use the API you have to sign up for a free API token and subscribe to the APIs (free).

Example

Get all stations in the federal state of Hessen:

api := New("your token", APIConfig{})
stationDataAPI := api.StationDataAPI()

stationResponse, err := stationDataAPI.ByFilter(&StationDataRequest{
    Federalstate: "hessen",
})

for station := stationResponse.Result {
    fmt.Println(station.Name)
}

Rate limiting

Most APIs from Deutsche Bahn are rate limited. When you subscribe to an API you have to choose a tier which sets the amount of requests you can make on this API. go-db-api has a built in rate limiting which blocks until the next request can be made if you configure it in the APIConfig. In the case of a limit of 10 requests per minute, each 6 seconds a request is allowed to process.

If you want to implement your own rate limiting, set the rateLimitPerMinute to zero (default).

Releases

No releases published

Packages

No packages published

Languages