gbfsQL: GraphQL wrapper for GBFS feeds
gbfsQL takes a list of GBFS feeds and exposes a dynamic GraphQL API that you can use. Pull requests are always welcome.
We support GBFS Version v2.1-RC (compatible with release 2.0) and aim to update this project to newer releases as soon as they become available.
- SystemInformation, StationInformation, StationStatus, FreeBike, Geofencing Zones and SystemAlert endpoints
- Real-time updates via GraphQL Subscriptions
- Autodiscovery of available feeds
- Dashboard, listing all active feeds
gbfsQL will query the GBFS-Feed every time the TTL expires and cache results. That means requesting data from gbfsQL is very fast and will not incur an additonal request to the GBFS-Feed.
Try the Example below or use the follwing command to start a gbfsQL Docker container:
docker run -it --rm --name gbfsQL -e NODE_ENV=development -p 4000:4000 mapintelligenceagency/gbfsql -service <Name of Service>#<URL to */gbfs.json>
Create a docker-compose.yml file like this:
version: '3.3'
services:
gbfsql:
container_name: gbfsQL
command:
- '--services'
- 'JUMP_LA#https://gbfs.uber.com/v1/laxs/gbfs.json'
- 'UBIKE_UV#http://ubike.virginia.edu/opendata/gbfs.json'
- '--verbose'
# the dashboard will be at domain.com/dashboard
- '--dashboard'
environment:
- NODE_ENV=development
ports:
- '4000:4000'
image: mapintelligenceagency/gbfsql
Start gbfsQL with docker-compose up
Now you can visit the GraphiQL Board at http://localhost:4000 and query data using this sample query:
query {
JUMP_LA {
bikes {
lat
lon
}
}
UBIKE_UV {
stations {
name
currentStatus {
is_renting
}
}
}
}