ActiveModel::Serializer::Validator
This gem adds JSON schema validations for the JSON output generated by an ActiveModel::Serializer
.
Installation
Add this line to your application's Gemfile:
gem 'active_model_serializers_validator'
Usage
The gem adds two instance methods (#valid?
and #errors
) and one class method (.json_schema
) to the ActiveModel::Serializer
class.
A JSON schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-03/schema",
"id": "#",
"required": false,
"additionalProperties": false,
"properties": {
"favorite_number": {
"type": "integer",
"id": "favorite_number",
"required": true
},
}
}
A serializer
class MySerializer < ActiveModel::Serializer
json_schema '/path/to/my/schema.jsonschema'
attribute :favorite_number
end
object = OpenStruct.new(favorite_number: 'what?')
serializer = MySerializer.new(object)
serializer.valid?
# => false
serializer.errors
# => [The property '#/foo' of type String did not match the following type: integer in schema /path/to/my/schema.jsonschema]
License
ActiveModel::Serializer::Validator
is © 2013-2015 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md
file.
About Mirego
Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.
We also love open-source software and we try to give back to the community as much as we can.