Grapeful
Custom Response builder for Grape.
Installation
Add this line to your application's Gemfile:
gem 'grapeful'
And then execute:
$ bundle
Or install it yourself as:
$ gem install grapeful
Usage
Hello world example
class API < Grape::API
get :hello do
ful :hello, 'world'
end
end
The response will be
{
"hello": "world"
}
Using with ActiveRecord
class API < Grape::API
resources :users do
get '/' do
users = User.recent
ful :users, users
ful :total, users.length if current_user.admin?
end
end
end
The response will be
{
"users": [
{
"id": 21,
"name": "John Smith",
"uic": "john",
"role": "admin",
"created_at": "2013-08-14T10:12:30.933Z"
}
],
"total": 1
}
Using with active_model_serializers
class API < Grape::API
resources :users do
params { requires :user, type: Hash, desc: 'User data' }
post '/' do
user = User.new(params[:user])
user.save!
ful :user, UserSerializer.new(user), message: 'The user was successfuly created.'
end
end
end
The response will be
{
"user": {
"id": 25,
"name": "Don Dan",
"uic": "don",
"role": "admin",
"created_at": "2013-08-14T10:12:30.933Z"
},
"message": "The user was successfully created."
}
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