У меня есть требование указать API в raml, где должны быть указаны свойства объекта, иначе проверка должна завершиться неудачей. Это достигается additionalProperties: false
.
Кроме того, я хотел бы указать, что объекты запроса могут содержать свойства шаблона, аналогичные официальному примеру:
/^note\d+$/?: # restrict any properties whose keys start with "note"
# followed by a string of one or more digits
type: string
Эти две вещи хороши сами по себе, но когда они собраны вместе, они больше не работают (как указано в спецификации RAML):
Moreover, if additionalProperties is false (explicitly or by inheritance) in a given type definition, then explicitly setting pattern properties in that definition is not allowed. If additionalProperties is true (or omitted) in a given type definition, then pattern properties are allowed and further restrict the additional properties allowed in that type.
Итак, вопрос в том, как мне выполнить это требование. что-то вроде:
types:
Person:
description: |-
Document representing a person.
additionalProperties: false
properties:
firstName?:
description: |-
The person's first name
type: string
/^person_info_.+$/?:
description: Additional person info.
type: string
Обратите внимание, что в этом примере не будет сказано что-то вроде
extraneous key [person_info_1] is not permitted