Подтвердить что ты не робот

Как определить перечисление в swagger.io?

Кто-нибудь мог определить возможные значения "enum" на вкладке "Модель" в swaggger версии 2.0? Пример здесь: http://petstore.swagger.wordnik.com/#!/pet/addPet имеет опцию перечисления для свойства status, но этот пример использует версию 1.0 swagger (согласно версии swagger, определенной в JSON). Я попытался добиться того же в версии 2.0, но не повезло, не уверен, что документация верна для этого.

Какой-нибудь намек на это?

4b9b3361

Ответ 1

"enum" работает так:

      {
        "in": "query",
        "name": "sample",
        "description": "a sample parameter with an enum value",
        "type": "string",
        "enum": [ "1", "2"],
        "required": true
      }

Как вы можете видеть, есть параметр запроса, называемый sample строки типа, и имеет перечисление, содержащее два возможных значения. В этом случае образец указывает, что параметр необходим, поэтому пользовательский интерфейс не будет показывать пустое значение в качестве опции.

Для минимального рабочего образца попробуйте следующее:

{
  "swagger": "2.0",
  "info": {
    "title": "title",
    "description": "descriptor",
    "version": "0.1"
  },
  "paths": {
    "/sample": {
      "post": {
        "description": "sample",
        "parameters": [
          {
            "in": "query",
            "name": "sample",
            "description": "a sample parameter with an enum value",
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful request."
          }
        }
      }
    }
  }
}

Чтобы протестировать его локально, вы можете объявить переменную (например, spec) в своем javascript и передать ее в объект SwaggerUi.

  var spec = { ... };

  window.swaggerUi = new SwaggerUi({
    url: url,
    spec: spec,
    dom_id: "swagger-ui-container",
    supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
    onComplete: function(swaggerApi, swaggerUi){
    ...

В этом случае параметр url будет проигнорирован.

В итоге вывод выглядит следующим образом:

enter image description here

Я смог сделать это так хорошо, но, как вы можете видеть на изображении, прикрепленном ниже для каждого параметра, он создал раскрывающийся список: enter image description here

То, что я хочу достичь, это приятные вкладки схемы модели/модели, как показано на рисунке ниже, с доступными перечислениями, перечисленными для параметра. Возможно ли это в последней версии Swagger:

enter image description here

Ответ 2

Обновление этого синтаксиса YAML:

in: query
name: sample
description: a sample parameter with an enum value
type: string
enum:
    - 1
    - 2
required: true

Ответ 3

Это не точный ответ, но он может работать для вас, пока они не добавят эту функциональность.

Просто объявите свойство таким образом

"MyObject":{
   "properties":{
      "MyEnum":{
         "type":"Value1 or Value2 or Value3"
      }
   }
}

В вашей модели ModelSchema будет отображаться {}, но Model покажет MyEnum(Value1 or Value2 or Value3, optional)