| lib | ||
| spec | ||
| .DS_Store | ||
| Gemfile | ||
| Gemfile.lock | ||
| grape-active_model_serializers.gemspec | ||
| LICENSE | ||
| Rakefile | ||
| README.md | ||
Grape::ActiveModelSerializers
Use active_model_serializers with Grape!
Installation
Add the grape and grape-active_model_serializers gems to Gemfile.
gem 'grape'
gem 'grape-active_model_serializers'
And then execute:
bundle
Usage
Require grape-active_model_serializers
# config.ru
require 'grape/active_model_serializers'
Tell your API to use Grape::Formatter::ActiveModelSerializers
class API < Grape::API
format :json
formatter :json, Grape::Formatter::ActiveModelSerializers
end
Writing serializers
Serializers are inferred by active_record model names
grape-active_model_serializers will search for serializers for the objects returned by your grape API.
Serializer
namespace :users do
get ":id" do
@user = User.find(params[:id])
end
end
In this case, as User objects are being returned, grape-active_model_serializers will look for a serializer named UserSerializer.
Disabling serializer inferrence
You can turn off serializer inferrence.
Grape::Formatter::ActiveModelSerializers.infer_serializers = false
Manually specifying a serializer
Serializers can be specified at a route level by with the serializer option. A serializer can be specified with its class name or by name as string/symbol. The following are equivalent:
get "/home", :serializer => HomeSerializer
...
get "/home", :serializer => "home"
get "/home", :serializer => :home
Example
# user.rb
class User
include ActiveModel::SerializerSupport
attributes :first_name, :last_name, :email
end
# user_serializer.rb
class UserSerializer < ActiveModel::Serializer
attributes :first_name, :last_name
end
Rspec
See "Writing Tests" in https://github.com/intridea/grape.
Enjoy :)
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
Thanks to
The developers and maintainers of: active_model_serializers Grape!
Structured and based upon Grape.

