API versioning via the Accept header.
Install as a gem :
gem install raisin
or add directly to your Gemfile
gem 'raisin'
raisin
allows you to encapsulate your routes within API versions, using a custom Accept
header to routes them to your controller accordingly.
It uses the fact that Rails router is resolved top to bottom.
# config/routes.rb
Rails.application.routes.draw do
api :v2 do
resources :users, only: :show
end
api :v1, default: true do
resources :users
get '/users/sign_in', to: 'sessions#new'
end
end
Clients using the version v2
will have access to all the methods from the v1
version plus their /users/show
routes will be overriden the the new one define in the first api
block.
Raisin.configure do |c|
c.vendor = 'mycompany' # replace with your vendor
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request