Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opengovernment/govkit
Ruby wrappers for open government APIs around the web
https://github.com/opengovernment/govkit
Last synced: 3 months ago
JSON representation
Ruby wrappers for open government APIs around the web
- Host: GitHub
- URL: https://github.com/opengovernment/govkit
- Owner: opengovernment
- License: mit
- Created: 2010-04-28T19:48:56.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2014-04-05T02:43:05.000Z (over 10 years ago)
- Last Synced: 2024-07-17T09:06:57.932Z (4 months ago)
- Language: Ruby
- Size: 847 KB
- Stars: 178
- Watchers: 19
- Forks: 30
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Govkit [![Build Status](https://secure.travis-ci.org/opengovernment/govkit.png)](http://travis-ci.org/opengovernment/govkit)
Govkit is a Ruby gem that provides simple access to US open government APIs around the web, including:
* [OpenCongress](http://www.opencongress.org/api), which has an API for federal bills, votes, people, and news and blog coverage
* [The Open States project](http://fiftystates-dev.sunlightlabs.com/), which has a RESTful API for accessing data about state legislators, bills, votes, etc.
* [Project Vote Smart](http://www.votesmart.org/services_api.php), which has an API with congressional addresses, etc.
* [Follow The Money](http://www.followthemoney.org/), whose API reveals campaign contribution data for state officials.
* [TransparencyData API](http://transparencydata.com/api) (campaign contributions only)# Installation
From gemcutter:
gem install govkit
# Setup
Add govkit to your environment.rb or Gemfile
Run
rails generate govkit
(Rails 3.x) orscript/generate govkit
(Rails 2.x) to copy a config file intoconfig/initializers/govkit.rb
. You will need to add your API keys to this config file.Outside of Rails you can configure your API keys like so:
>> GovKit.configure do |config|
>> config.sunlight_apikey = 'YOUR_SUNLIGHT_API_KEY'
>> config.votesmart_apikey = 'YOUR_VOTESMART_API_KEY'
>> config.ftm_apikey = 'YOUR_FTM_API_KEY'
>> end# Usage Examples
>> GovKit::OpenStates::State.find_by_abbreviation('CA')
>> GovKit::VoteSmart::Address.find(votesmart_candidate_id)
>> GovKit::OpenCongress::Bill.find(:number => 5479, :type => 'h', :congress => '111')Objects returned from GovKit will have attributes for each field coming back from the API:
>> x = GovKit::OpenStates::State.find_by_abbreviation('CA')
=> #"Assemblymember", "lower_chamber_name"=>"Assembly", "upper_chamber_title"=>"Senator", "terms"=>[#> x.name
=> "California"GovKit will raise GovKit::ResourceNotFound if a requested item isn't available.
# Testing & Debugging
For debugging purposes, there's a raw_response reader provided for each object, which typically returns an HTTParty::Response object. To see the body of the HTTP response, you might look here:
(continuing the example from above)
>> x.raw_response.response.body
=> "{\n \"lower_chamber_title\": \"Assemblymember\", \n \"lower_chamber_name\": \"Assembly\", \n ....# Bugs? Questions?
Please join the [Govkit Google Group](http://groups.google.com/group/govkit), especially if you'd like to talk about a new feature and get announcements.
[Report a bug](https://participatorypolitics.lighthouseapp.com/projects/51485-govkit) on our Lighthouse page.
Govkit's main repo is on Github: [http://github.com/opengovernment/govkit](http://github.com/opengovernment/govkit), where your contributions, forks, and feedback are greatly welcomed.
# Dear Canadians
For Canadian open government data, our friends up north have created a [govkit-ca](https://github.com/opennorth/govkit-ca) gem that lives in the GovKit::CA namespace and should interoperate just fine with this gem.
# A GovKit for your country?
Let us know if you'd like to build a govkit for your region! We'd love to link to you. Your gem should be called, for example, govkit-uk (ISO 3166 country code), and your methods should live in the GovKit::GB namespace (for example).
Copyright (c) 2010 Participatory Politics Foundation, released under the MIT license