Swagger поля для отправки запроса

Делаю авто документацию при помощи django swagger. Заметил такую вещь, что некоторые запросы имеют поле для ввода, например тут поле id имеет отдельную форму

введите сюда описание изображения

А некоторые функции таких полей не имеют

введите сюда описание изображения

Почему так происходит?


Ответы (1 шт):

Автор решения: maestro

Это зависит от способа передачи параметра в запросе. Например, если у параметра значение in равно path, то вы увидите поле ввода. Если же равно body, то будет отображена модель данных. Чтобы редактировать данные в модели, нажмите кнопку Try it out.

Например, ваш первый запрос, скорее всего, выглядит так:

/user/{id}
  get:
    summary: ""
    parameters:
    - name: "id"
      in: "path"
      required: true
      description: "A unique integer value identifying this user"

Второй запрос выглядит примерно так:

/user/password
  patch:
    summary: ""
    parameters:
    - in: "body"
      name: "data"
      required: true
      schema:
        $ref: "/#/definitions/SomeModel"

Отобразить поля в веб-интерфейсе Swagger не получится, так как модели данных бывают очень сложными, в них бывают вложенные объекты, поля различных типов, массивы, и в общем случае их отображение - задача затруднительная. А вообще в терминологии HTTP и REST API всё, что находится в поле data - это одно поле - тело HTTP-запроса.

Кстати, поле id недоступно для ввода, пока вы не нажмёте кнопку Try it out.

→ Ссылка