Grape is a REST-like API micro-framework for Ruby. It is built to complement existing web application frameworks such as Rails and Sinatra by providing a simple DSL to easily provide APIs. It has built-in support for common conventions such as multiple formats, subdomain/prefix restriction, and versioning.
class Twitter::API < Grape::Base subdomain 'api' version '1' formats :xml, :json authorization :oauth, User resource :statuses do group :timelines do formats :rss, :atom get :public_timeline do optional :trim_user, Boolean optional :include_entities, Boolean Tweet.limit(20) end get :home_timeline do authorized user.home_timeline end end end end # Rack endpoint Twitter::API.statuses.timelines.get(:public_timeline) class Twitter::API::User < Grape::Resource::ActiveRecord represents ::User property :status, lambda{|u| u.latest_status}, Twitter::API::Status end
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 Michael Bleigh and Intridea, Inc. See LICENSE for details.