Swagger: взять одно или несколько значений из enum - PullRequest
0 голосов
/ 26 мая 2018

Я работаю над файлом подмены, где параметр запроса не может принимать ни одного, или n значений.Как я могу написать это в Swagger Yaml?

URL, который я даю: /sort=field1,field2

Параметр, объявленный в файле swagger

- name: sort
  in: query
  schema:
    type: string
    enum: [field1,field2,field3]
  allowEmptyValue: true
  required: false
  description: Sort the results by attributes. (See http://jsonapi.org/format/1.1/#fetching-sorting)

Хорошего дня / ночи.

1 Ответ

0 голосов
/ 28 мая 2018

Параметр запроса, содержащий список значений, разделенных запятыми , определяется как массив .Если значения предопределены, то это массив с перечислением .

. По умолчанию в массиве может быть любое количество элементов, соответствующее вашему требованию «нет или больше».При необходимости вы можете ограничить количество элементов с помощью minLength и maxLength и при необходимости принудительно применить uniqueItems: true.

OpenAPI 2.0

Определение параметра будет выглядеть следующим образом.collectionFormat: csv указывает, что значения разделены запятыми, но это формат по умолчанию, поэтому его можно не указывать.

      parameters:
        - name: sort
          in: query
          type: array  # <-----
          items:
            type: string
            enum: [field1, field2, field3]
          collectionFormat: csv  # <-----
          required: false
          description: Sort the results by attributes. (See http://jsonapi.org/format/1.1/#fetching-sorting)

OpenAPI 3.0

collectionFormat: csv из OpenAPI 2.0 замененс style: form + explode: false.style: form - это стиль по умолчанию для параметров запроса, поэтому его можно опустить.

      parameters:
        - name: sort
          in: query
          schema:
            type: array  # <-----
            items:
              type: string
              enum: [field1, field2, field3]
          required: false
          description: Sort the results by attributes. (See http://jsonapi.org/format/1.1/#fetching-sorting)
          explode: false  # <-----

Я думаю, что нет необходимости в allowEmptyValue, потому что пустой массив в этом случае будет фактически пустым значением.Более того, allowEmptyValue не рекомендуется для использования начиная с OpenAPI 3.0.2 ", поскольку оно будет удалено в будущей версии."

...