Как можно указать, что число запрещено для использования в документации чванства? - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь указать свойство в документации по сваггеру, которое называется myNumber, которое может быть любым целым числом в [-1, 10], кроме 0. Это то, что у меня пока есть:

myNumber:
    type: integer
    description: You can use any number in [-1, 10] except 0.
    minimum: -1
    maximum: 10

Как я могу четко указать, что 0 запрещено? Я не нашел никакой спецификации для этого в документах openAPI. Это вообще возможно?

1 Ответ

0 голосов
/ 12 марта 2020

Вариант 1: enum

Если список возможных значений мал, вы можете перечислить их все в enum:

myNumber:
  type: integer
  description: You can use any number in [-1, 10] except 0.
  enum: [-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Это простейшее решение и работает в OpenAPI 2.0 и 3.0.

Опция 2: oneOf

В OpenAPI 3.0 вы можете использовать oneOf для определения двух диапазонов возможных значений:

myNumber:
  type: integer
  description: You can use any number in [-1, 10] except 0.
  oneOf:
    - enum: [-1]  # shorthand for `minimum: -1` + `maximum: -1`
    - minimum: 1
      maximum: 10

Опция 3 : not

OpenAPI 3.0 также поддерживает not для определения условий, которым экземпляр не должен удовлетворять . Например, вы исключаете значение 0 следующим образом:

myNumber:
  type: integer
  description: You can use any number in [-1, 10] except 0.
  minimum: -1
  maximum: 10
  not:
    enum: [0]

Однако фактическая поддержка инструментов для not может отличаться.

...