Массив файлов в Swagger

#swagger #swagger-ui #openapi

Вопрос:

Как определить список файлов в Swagger?

Вот что я сделал, но это не работает.

Комментарии:

1. Используете ли вы swagger: '2.0' или openapi: 3.0.0 ?

2. я использую swagger: '2.0'

Ответ №1:

OpenAPI 2.0

В OpenAPI 2.0 ( swagger: '2.0' ) вы должны определить каждый файл как отдельный параметр. Это означает, что вы можете описывать только запросы, которые отправляют фиксированное / ограниченное количество файлов. Невозможно определить несвязанный массив файлов.

 paths:
  /something:
    post:
      consumes:
        - multipart/form-data
      parameters:
        - in: formData
          name: file1
          type: file
        - in: formData
          name: file2
          type: file
        - ...
 

OpenAPI 3.0

Массивы файлов поддерживаются в OpenAPI 3.0. Запрос может быть определен следующим образом:

 openapi: 3.0.0

paths:
  /something:
    post:
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                # "reports" will be used as the name of each file part/field
                # in the multipart request
                reports:
                  type: array
                  items:
                    type: string
                    format: binary
 

OpenAPI 3.1

OAS 3.1 также поддерживает файловые массивы, но синтаксис немного отличается от 3.0. В частности, items: {} вместо элементов двоичной строки используются файловые массивы.

 openapi: 3.1.0

paths:
  /something:
    post:
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                # "reports" will be used as the name of each file part/field
                # in the multipart request
                reports:
                  type: array
                  items: {}