Я хотел бы разместить объект JSON в теле вызова REST API. Атрибут data
этого объекта DATA
содержит обязательный атрибут timestamp
, а затем ряд различных атрибутов в зависимости от источника объекта Data. Насколько я понял, additionalProperties
предназначен для этого и по умолчанию false
или указывает объект схемы для каждого не определенного атрибута.Ошибка схемы Swagger with AdditionalProperties
После Swagger YAML
/my/path:
post:
tags: [Tag]
description: Description
parameters:
- name: data
in: body
description: The actual data.
required: false
type: object
schema:
$ref: "#/definitions/Data"
definitions/
Data:
type: object
properties:
source:
type: string
data:
type: object
properties:
timestamp:
type: string
format: date-time
additionalProperties:
type: string
должны пройти оба объекта отправить:
{
"source": "A",
"data": {
"timestamp": "2016-10-26T01:12:40.329Z",
}
}
и:
{
"source": "B",
"data": {
"timestamp": "2016-10-26T01:12:40.329Z",
"newProp":"newValue"
}
}
Однако все я получаю это ошибка проверки: ValidationError: child "data" fails because ["test" is not allowed]
Что я делаю неправильно или я искажая атрибут, описанный в документации: http://swagger.io/specification/
Alx, я не знаю, если ответ, который я предоставил, слишком поздно, чтобы быть полезным. Но если предоставленная вами информация не согласуется с результатами, которые вы видите, предоставьте некоторые сведения об ошибке проверки. В частности, где вы видели эту ошибку? Какой процессор Swagger или средство проверки схемы подготовили его? –