mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-23 06:16:50 +00:00
It is a common pattern to use JSON Schema to validate a API response[1], [2] and [3]. This patch creates the `assert_response_schema` test helper that helps people do this kind of validation easily on the controller tests. [1]: https://robots.thoughtbot.com/validating-json-schemas-with-an-rspec-matcher [2]: https://github.com/sharethrough/json-schema-rspec [3]: https://github.com/rails-api/active_model_serializers/issues/1011#issuecomment-127608121
94 lines
2.0 KiB
JSON
94 lines
2.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/hyper-schema",
|
|
"title": "Profile",
|
|
"description": "Profile schema",
|
|
"stability": "prototype",
|
|
"strictProperties": true,
|
|
"type": [
|
|
"object"
|
|
],
|
|
"definitions": {
|
|
"name": {
|
|
"description": "unique name of profile",
|
|
"readOnly": true,
|
|
"type": [
|
|
"string"
|
|
]
|
|
},
|
|
"description": {
|
|
"description": "description of profile",
|
|
"readOnly": true,
|
|
"type": [
|
|
"string"
|
|
]
|
|
},
|
|
"identity": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "/schemata/profile#/definitions/name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"links": [
|
|
{
|
|
"description": "Create a new profile.",
|
|
"href": "/profiles",
|
|
"method": "POST",
|
|
"rel": "create",
|
|
"schema": {
|
|
"properties": {
|
|
},
|
|
"type": [
|
|
"object"
|
|
]
|
|
},
|
|
"title": "Create"
|
|
},
|
|
{
|
|
"description": "Delete an existing profile.",
|
|
"href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
|
|
"method": "DELETE",
|
|
"rel": "destroy",
|
|
"title": "Delete"
|
|
},
|
|
{
|
|
"description": "Info for existing profile.",
|
|
"href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
|
|
"method": "GET",
|
|
"rel": "self",
|
|
"title": "Info"
|
|
},
|
|
{
|
|
"description": "List existing profiles.",
|
|
"href": "/profiles",
|
|
"method": "GET",
|
|
"rel": "instances",
|
|
"title": "List"
|
|
},
|
|
{
|
|
"description": "Update an existing profile.",
|
|
"href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
|
|
"method": "PATCH",
|
|
"rel": "update",
|
|
"schema": {
|
|
"properties": {
|
|
},
|
|
"type": [
|
|
"object"
|
|
]
|
|
},
|
|
"title": "Update"
|
|
}
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"$ref": "/schemata/profile#/definitions/name"
|
|
},
|
|
"description": {
|
|
"$ref": "/schemata/profile#/definitions/description"
|
|
}
|
|
},
|
|
"id": "/schemata/profile"
|
|
}
|