HTTP and server side cache integration for Grape and Rails
Features
- HTTP Headers cache, ETag, Cache-Control, If-None-Match
- Server side cache for response body
Installation
Add this line to your rails application's Gemfile:
gem 'grape-rails-cache'
And then execute:
$ bundle
Usage
module MyApi < Grape::API
format :json
include Grape::Rails::Cache
resources :posts do
desc "Return a post"
get ":id" do
post = Post.find(params[:id])
cache(key: "api:posts:#{post.id}", etag: post.updated_at, expires_in: 2.hours) do
post
end
end
end
end
Contributing
- 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