Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ltfschoen/opendata-api
Ruby Gem wrapper for Transport for NSW (TfNSW) Open Data APIs
https://github.com/ltfschoen/opendata-api
curl dotenv gem https net-http nsw-government opendata-api ruby rubygems transport
Last synced: 20 days ago
JSON representation
Ruby Gem wrapper for Transport for NSW (TfNSW) Open Data APIs
- Host: GitHub
- URL: https://github.com/ltfschoen/opendata-api
- Owner: ltfschoen
- License: mit
- Created: 2017-12-22T09:32:22.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-22T10:48:51.000Z (almost 7 years ago)
- Last Synced: 2024-04-24T19:23:50.675Z (7 months ago)
- Topics: curl, dotenv, gem, https, net-http, nsw-government, opendata-api, ruby, rubygems, transport
- Language: Ruby
- Homepage: https://rubygems.org/gems/opendata-api
- Size: 4.88 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenData API
[![Gem Version](https://badge.fury.io/rb/opendata-api.svg)](https://badge.fury.io/rb/opendata-api)
* Ruby Gem wrapper for [Transport for NSW Open Data APIs](https://opendata.transport.nsw.gov.au) that opens a HTTP(S) session for multiple configured requests. Currently supported APIs:
* Traffic Volume Counts API
* Trip Planner API## Installation
* Install Gem
```bash
$ gem install opendata-api
$ bundle install
```* Follow [User Guide of OpenData API](https://opendata.transport.nsw.gov.au/user-guide) to:
* Register with OpenData API
* Create App
* Select APIs Supported by the Gem
* Obtain associated API Keys
* Add API Keys to .env file (i.e. `OPENDATA_API_KEY=`)
* Access the API Key in Ruby app with `ENV['OPENDATA_API_KEY']`* Usage in Ruby project or IRB
```ruby
require 'opendata-api'
require 'json'
require 'dotenv'
API_KEY = ENV['OPENDATA_API_KEY']
OpenDataAPI.init(API_KEY)
args = [
{
api_name: 'traffic_volume_counts',
format: 'geojson',
table: 'road_traffic_counts_station_reference',
limit: '50'
},
{
api_name: 'trip_planner',
format: 'rapidJSON',
coord_lat: '-33.8688',
coord_long: '151.2093',
coord_radius: '1000'
}
]
response = OpenDataAPI.run(args)
puts JSON.pretty_generate(JSON.parse(response[:traffic_volume_counts]))
puts JSON.pretty_generate(JSON.parse(response[:trip_planner]))
```## Contributors
Contributions are welcome. Particularly updating the configuration to support other OpenData APIs.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).