Массив Swagger целочисленного возвращаемого типа

Я только начинаю использовать редактор swagger для определения моего RESTful API, и я запутался в ответах. Многие из моих методов просто возвращают массив целых чисел, и я не понимаю, как указать это в YAML.


person Gargoyle    schedule 19.01.2017    source источник


Ответы (1)


Спецификация OpenAPI (fka Swagger) 2.0 использует подмножество JSON Schema v4. Вы можете обратиться к документам по схеме JSON или это отличное руководство, чтобы узнать, как описывать различные типы данных с помощью схемы JSON. Но имейте в виду, что некоторые функции схемы JSON не поддерживаются или работают по-другому в OpenAPI/Swagger. Спецификация упоминает, что именно поддерживается.

Возвращаясь к вашему вопросу, массив целых чисел определяется как:

type: array
items:
  type: integer

Или в контексте ответа:

paths:
  /something:
    get:
      responses:
        200:
          description: OK
          schema:
            type: array
            items:
              type: integer

Если массивы целых чисел используются в нескольких местах вашей спецификации, вы можете определить массив в глобальном разделе definitions, а затем использовать $ref для ссылки на него:

paths:
  /something:
    get:
      responses:
        200:
          description: OK
          schema:
            $ref: "#/definitions/ArrayOfInt"

definitions:
  ArrayOfInt:
    type: array
    items:
      type: integer

Вы также можете указать example значений для массива. Пользовательский интерфейс Swagger отобразит этот пример, и некоторые инструменты имитации будут использовать его при создании примеров ответов.

definitions:
  ArrayOfInt:
    type: array
    items:
      type: integer
    example: [1, 2, 3, 4]
    # Make sure to put the multi-item "example"
    # on the same level as the "type" and "items" keywords
person Helen    schedule 24.01.2017
comment
У меня та же проблема, но я использую swagger для создания спецификации на основе комментариев документа... Могу ли я указать массив целых чисел в качестве ответа, используя комментарии документа? - person Aaron Hill; 20.06.2017
comment
@AaronHill: Это должно быть возможно, но это зависит от используемого вами языка/фреймворка. Я бы рекомендовал задать новый вопрос о вашем конкретном фреймворке. - person Helen; 20.06.2017
comment
Что такое тип параметра? Я не могу использовать массив целых чисел с типом параметра = запрос и type: array items: type: integer - person carmelolg; 22.03.2018
comment
@carmelog: Трудно сказать, не видя фактического определения вашего API. Вместо этого задайте новый вопрос. - person Helen; 22.03.2018