У меня небольшая проблема с созданием пути загрузки в моем API. Например:
/test/upload:
post:
operationId: post form attachemnts
requestBody:
content:
multipart/form-data:
schema:
type: object
required:
- testId
properties:
testId:
type: string
example: 1
document:
type: string
format: binary
Я хочу отправить testId (Обязательно - это нормально), но мой документ (jpg, pdf) должен быть необязательным.
Часть кода, созданная openapi- generator-maven-plugin: 4.2.3:
@RequestParam(value="testId", required=true) String testId,@ApiParam(value = "") @Valid @RequestPart("document") MultipartFile document
Когда я отправляю сообщение в почтальоне только с заполненным testId, я получаю: "Required request part 'document' is not present"
Я думаю, что проблема частично @RequestPart("document") MultipartFile document
и правильный сгенерированный код должен выглядеть следующим образом @RequestPart(value="document", required=false) MultipartFile document
. Но как этого добиться?
Документ, созданный в Swagger Editor, OpenAPI 3.0.2, SB 2.2.1.RELEASE Объявленные зависимости:
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>logging-interceptor</artifactId>
<version>2.7.5</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<type>jar</type>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.threeten</groupId>
<artifactId>threetenbp</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>io.gsonfire</groupId>
<artifactId>gson-fire</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>