Как указать многофайловую загрузку в OpenAPI? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь сгенерировать данные для заполнения ввода OpenAPI 3.0 из моей кодовой базы.

У меня есть конечная точка отдыха, предназначенная для загрузки файлов на сервер.

У меня есть форма как полимерный компонент vaadin-upload для загрузки файлов. Путь /upload-all и имя параметра формы my-attachment. Форма правильно загружает файлы на сервер, так что это не проблема.

Конечная точка сервера реализована с использованием XQRS RestXQ Загрузка файлов в HTML-формах спецификация.

Я пытаюсь создать вход JSON OpenAPI для пользовательского интерфейса OpenAPI 3.0 для многоэтапной загрузки файла. Вот что я попробовал:

"/upload-all": {
    "post": {
        "consumes": ["multipart/form-data"],
        "description": "Upload zip file to the server",
        "responses": {
            "content": {
                "application/json": {
                    "schema": {
                        "type": "object"
                    }
                }
            }
        },
        "parameters": [
            {
                "in": "formData",
                "schema": {
                    "type": "array",
                    "items": {
                        "type": "file"
                    }
                },
                "name": "my-attachment"
            }
        ]
    }
},

Я получаю сообщение об ошибке, что параметр формы my-attachment не заполняется. Что мне не хватает? Я не смог найти точную спецификацию на сайте OpenAPI.

UPDATE: Я попытался изменить вывод моего кода на:

"/upload-all": {
    "post": {
        "requestBody": {
            "content": {
                "multipart/form-data": {
                    "schema": {
                        "properties": {
                            "my-attachment": {
                                "type": "array",
                                "items": {
                                    "format": "binary",
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "description": "Upload zip file to the server",
        "responses": {
            "content": {
                "application/json": {
                    "schema": {
                        "type": "object"
                    }
                }
            }
        }
    }
},

И пользовательский интерфейс OpenAPI показывает следующее:

OpenAPI UI

Это должно быть что-то вроде:

file uploads

Пользовательский интерфейс OpenAPI является текущим и актуальным. Чего здесь не хватает?

1 Ответ

0 голосов
/ 25 января 2019

Вы почти у цели - просто добавьте "type": "object" к вашей схеме тела запроса:

        "requestBody": {
            "content": {
                "multipart/form-data": {
                    "schema": {
                        "type": "object",   // <-------
                        "properties": {
                            "my-attachment": {
                                ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...