OpenAPITools / OpenAPITools/openapi-generator
[BUG][SPRING] Webflux minItems generates incompatible validation annotation
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Description
Webflux minItems generates incompatible validation annotation. Size cannot validate a flux.
openapi-generator version
<openapi-generator-maven-plugin.version>7.2.0</openapi-generator-maven-plugin.version>
OpenAPI declaration file content or url
schema:
items:
format: uuid
type: string
minItems: 1
type: array
Generation Details
<configuration>
<inputSpec>...</inputSpec>
<packageName>...</packageName>
<apiPackage>...</apiPackage>
<modelPackage>...</modelPackage>
<generatorName>spring</generatorName>
<skipIfSpecIsUnchanged>true</skipIfSpecIsUnchanged>
<generateApiTests>false</generateApiTests>
<generateModelTests>false</generateModelTests>
<skipValidateSpec>true</skipValidateSpec>
<configOptions>
<useSpringBoot3>true</useSpringBoot3>
<openApiNullable>false</openApiNullable>
<interfaceOnly>true</interfaceOnly>
<useTags>true</useTags>
<generateBuilders>false</generateBuilders>
<hideGenerationTimestamp>true</hideGenerationTimestamp>
<reactive>true</reactive>
<generatedConstructorWithRequiredArgs>false</generatedConstructorWithRequiredArgs>
<additionalModelTypeAnnotations>@lombok.Builder(toBuilder = true)
@lombok.NoArgsConstructor
@lombok.AllArgsConstructor</additionalModelTypeAnnotations>
</configOptions>
<typeMappings>
<typeMapping>OffsetDateTime=Instant</typeMapping>
</typeMappings>
<importMappings>
<importMapping>java.time.OffsetDateTime=java.time.Instant</importMapping>
</importMappings>
</configuration>
@Parameter(name = "UUID") @Valid @Size(min = 1) @RequestBody(required = false) Flux<UUID> uuids,
Suggest a fix
Good fix would be it not being a flux in order to validate it properly. Previous versions (f.e. 5.4.0) just did not add the @Size annotation to it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the Spring generator's reactive parameter and validation-annotation generation, using the provided array schema and WebFlux configuration as the reproduction. Compare generated output with the 5.4.0 behavior, then verify that minItems does not produce an incompatible @Size annotation on Flux.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100