Я смущен, о какой ситуации я определяю свойства в моих json-схемах.Какие свойства элемента должны быть включены в json-схему?
Предположим, у меня есть элемент product
, для которого я пытаюсь определить схему. В моей базе данных находится таблица products
: id
, brand_id
, name
, item_number
и description
. Все поля, кроме description
, являются обязательными. id
автогенерируется базой данных, а brand_id
устанавливается автоматически при создании api на основе создания пользователя.
Это означает, что я могу POST /api/products
использовать только следующие данные:
{
"product": {
"name": "Product Name",
"item_number": "item001"
}
}
Однако, как следует я теперь определить схему продукта? Должен ли я включать свойства id
и brand_id
? Если да, следует ли их маркировать по мере необходимости, даже если они установлены автоматически?
Это то, что я придумал:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://jsonschema.net/products",
"type": "object",
"properties": {
"item_number": {
"id": "http://jsonschema.net/products/item_number",
"type": "string"
},
"name": {
"id": "http://jsonschema.net/products/name",
"type": "string"
},
"description": {
"id": "http://jsonschema.net/products/description",
"type": "string",
"default": "null"
}
},
"required": [
"item_number",
"name"
]
}
Спасибо, Дэвид. Для тех, кто найдет это с тем же вопросом, что и я, я нашел хорошую запись для профсоюзного механизма, о котором Дэвид упоминает в http://spacetelescope.github.io/understanding-json-schema/reference/combining.html, который стоит того читать. – Esben