«Тело запроса» не появляется в Swagger UI - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь выполнить тест с запросом POST в моей документации Swagger, но у меня возникают следующие проблемы:

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

Здесь вы можете увидеть поле «Тело запроса» с примерами данных, готовыми для редактирования:
Пример редактора Swagger

И здесь вы можете видеть, что Swagger UI не показывает это:
Пример Swagger UI

Примечание. Я создал nodejs-сервер .

Мой .yaml код:

openapi: '3.0.1'

info:
  version: 1.0.0
  title: Test
  description: Test openapi.

servers:
  - url: http://localhost:3005

paths:
  /login:
    post:
      summary: Login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/login'
      responses:
        200:
          description: Test

components:
  schemas:
    login:
      type: object
      properties:
        email:
          type: string
          example: example@example.com.br
        password:
          type: string
          format: password
          example: example123
        expires:
          type: integer
          example: 86400
      required:
       - email
       - password

1 Ответ

0 голосов
/ 23 апреля 2019

TL; DR: обновить интерфейс Swagger до последней версии.

Просто для пояснения сценария (для будущих читателей): ОП вставил это определение OpenAPI 3.0 в редактор Swagger, сгенерировал сервер Node.js и запустил его. Проблема с отображением тела запроса связана с интерфейсом Swagger, который является частью этого сервера Node.js (http://localhost:8080/docs).

Проблема в том, что этот сервер Node.js использует очень старую версию Swagger UI. Более конкретно, он использует oas3-tools пакет v. 1.0.1, в который входит Swagger UI v. 3.3.1. Последняя версия пользовательского интерфейса Swagger (на момент написания этой статьи) - 3.22.1, и у нее нет описанной проблемы.

Решение состоит в том, чтобы обновить Swagger UI до последней версии:

  • Вы можете открыть вопрос с помощью oas3-tools и попросить разработчиков обновить прилагаемый интерфейс Swagger до последней версии. В качестве альтернативы, подайте PR самостоятельно.

  • В качестве быстрого исправления вы можете раскошелиться oas3-tools, обновить связанные файлы Swagger UI в папке <oas3-tools>\middleware\swagger-ui, а затем обновить package.json сгенерированного сервера Node.js, чтобы он ссылался на ваш oas3-tools вилка вместо.

...