Daredevil
This gem provides insight to api errors by providing messages for all general server error response codes. It is inspired by the json_api_responders gem.
Table of contents
- Status
- Installation
- Configuration
- Usage
- Developing
- License
- Credits
Status
Installation
Add daredevil to your application's Gemfile:
gem 'daredevil'And then execute:
$ bundleInside your base controller, include the module:
module Api
module V1
class BaseController < ApplicationController
include Daredevil
end
end
endConfiguration
If you would like to use serializers instead of jbuilder, you can add a config initializer.
Daredevil.configure do |config|
config.responder_type = :serializers
endUsage
If a status is not set, the default status will be returned.
class ResourceController
before_action :set_resource
def index
respond_with @resources
end
def show
respond_with @resource
end
def create
if resource.save
respond_with @resource, status: 201
else
respond_with @resource, status: 442
end
end
def update
if resource.valid?
respond_with @resource, status: 200
else
respond_with @resource, status: 442
end
end
def destroy
head status: 204
end
private
def set_resource; end
endIf serializers are set as the render method, Daredevil will try to infer which serializer first by checking for a namespaced serializer, then fallback to a non-namespaced serializer.
The following example will look for Api::V1::UserSerializer first, then if not found will look for UserSerializer.
module Api
module V1
class UserController
def index
respond_with @users
end
end
end
endOr, specify a serializer specifically:
module Api
module V1
class UserController
def index
respond_with @users, serializer: KustomUserSerializer
end
end
end
endDeveloping
- Thank you! We love our contributors!
- Clone the repository.
- Make your changes in a thoughtfully-named branch.
- Ensure 1:1 test coverage.
- Submit a Pull Request!
- Celebrate! 🎉
License
This project rocks and uses MIT-LICENSE.
Credits
Daredevil is maintained and funded by ProctorU, a simple online proctoring service that allows you to take exams or certification tests at home.