Многочастная загрузка файлов WebFlux - невозможно использовать FilePart в Springfox Swagger Версия: 3.0.0-SNAPSHOT - PullRequest
0 голосов
/ 10 января 2020

Для конечной точки, использующей Spring WebFlux для загрузки файла, документация интерфейса пользователя Swagger неправильно генерирует кнопку ввода файла. Он не позволяет выбрать файл и отправить его как составной запрос для FilePart:

. Пожалуйста, предложите, какую версию использовать или как ее исправить.

Тот же код работает нормально в POSTMAN.

enter image description here

Контроллер

public String upload(
@RequestPart(value = "uploadedBy", required = true) String uploadedBy,
@RequestPart(value = "file",required = false) FilePart file)
{
   .....
}

Версия Swagger: 3.23.11 Ниже приведены зависимости Swagger Maven.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-bean-validators</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-spring-webflux</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>

API Do c

"paths": {
        "/upload": {
            "post": {
                "tags": [
                    "document-controller"
                ],
                "summary": "uploadDocument",
                "operationId": "uploadDocumentUsingPOST",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "in": "formData",
                        "name": "file",
                        "description": "file",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/FilePart"
                        }
                    },
                    {
                        "name": "uploadedBy",
                        "in": "formData",
                        "description": "uploadedBy",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "deprecated": false
            }
        }
    },
...