Селектор загрузки файлов в маршрутах Flasgger POST - PullRequest
0 голосов
/ 09 октября 2018

В Flasgger я пытаюсь создать документацию для маршрута, которая принимает загруженные файлы.Однако, несмотря на соблюдение спецификации , я не могу отобразить селектор файлов в пользовательском интерфейсе Flasgger.

Я использую последние (на сегодняшний день) flasgger==0.9.1 работающие спецификации OpenAPI 3 (как в "openapi": '3.0.0'), и я увидел этот коммит в Swagger-UI, который включает селекторы файловдля запросов файла POST.

Я знаю, что подобные вопросы задавались ранее, но ни один из них не относился к OAS версии 3.

Мой фрагмент кода приведен ниже:

Upload a file
Returns ID of uploaded file
---

tags:
- name: "attachments"
schemes:
- "http"

consumes:
- application/octet-stream
produces:
- application/json

requestBody:
  content:
    application/octet-stream:
      schema:
        type: file
        format: binary

responses:
  200:
    ... etc

И я получаю только пустой блок ввода в Flasgger UI.Возможно ли, что Flasgger не поддерживает его, хотя Swagger-UI поддерживает (я думал, что он построен поверх него)?Или синтаксис неправильный?

1 Ответ

0 голосов
/ 09 октября 2018

Вы смешиваете синтаксис OpenAPI 2.0 и 3.0.В OAS3 файлы описываются как двоичные строки, то есть type: string, а не type: file.Кроме того, ключевые слова consumes, produces и schemes не используются в OAS3.

Попробуйте следующее:

Upload a file
Returns ID of uploaded file
---

tags:
- attachments

requestBody:
  content:
    application/octet-stream:
      schema:
        type: string   # <-------
        format: binary

responses:
  '200':
    description: OK
    content:
      application/json:
        schema:
          # ... etc

Обратите внимание, что для загрузки файла OAS3 требуется Swager UI 3.16.0+, но Flassger 0.9.1 связан с пользовательским интерфейсом 3.14.2, и, похоже, нет способа обновить связанный пользовательский интерфейс Swagger.Эта возможность будет добавлена ​​в следующем обновлении, Flassger 0.9.2:

https://github.com/rochacbruno/flasgger#externally-loading-swagger-ui-and-jquery-jscss

Так что вам нужно дождаться Flassger 0.9.2.

Я также рекомендую проверить сгенерированный файл OpenAPI на наличие синтаксических ошибок с помощью Swagger Editor , поскольку синтаксические ошибки могут вызвать неправильный синтаксический анализ / рендеринг. В этом ответе объясняется, как экспортировать файл OpenAPI из интерфейса Swagger, чтобы его можно было использовать в другом месте.

...