Currently, openapi-generator doesn't support oneOf
. It currently generates the following broken code, outputting UNKNOWN_BASE_TYPE
rather than Pet
for the example below.
The code is broken with or without the discriminator
in the Spec.
default ResponseEntity<Void> _petsPost(@ApiParam(value = "" ) @Valid @RequestBody(required = false) UNKNOWN_BASE_TYPE UNKNOWN_BASE_TYPE) { return petsPost(UNKNOWN_BASE_TYPE); }openapi-generator version
pom.xml
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>4.2.3</version> <executions> <execution> <id>generate</id> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec> <generatorName>spring</generatorName> <generateSupportingFiles>true</generateSupportingFiles> <configOptions> <sourceFolder>src/gen/java/main</sourceFolder> <library>spring-boot</library> <java8>true</java8> <interfaceOnly>true</interfaceOnly> <skipDefaultInterface>false</skipDefaultInterface> <delegatePattern>true</delegatePattern> </configOptions> </configuration> </execution> </executions> </plugin>OpenAPI Spec
api.yaml
openapi: "3.0.2" info: version: 1.0.0 title: Polymorphism paths: /pets: post: requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/Cat' - $ref: '#/components/schemas/Dog' discriminator: propertyName: pet_type responses: '200': description: created components: schemas: # Parent Pet: type: object required: - pet_type properties: pet_type: type: string eats: type: string discriminator: propertyName: pet_type # Child 1 Dog: allOf: - $ref: '#/components/schemas/Pet' - type: object # all other properties specific to a `Dog` properties: bark: type: boolean # Child 2 Cat: allOf: - $ref: '#/components/schemas/Pet' - type: object # all other properties specific to a `Cat` properties: climbs: type: booleanCommand line used for generation Steps to reproduce
pom.xml
with openapi-generator-maven-plugin 4.2.3api.yaml
file abovemvn clean compile
\target\generated-sources\openapi\src\gen\java\main\org\openapitools\api\PetsApi.java
This bug is related to the Server side Java code (SpringBoot)
@bkabrda has already merged PR for client Jackson Client side: #5120
Try apply client side fix from #5120 to server side.
yurii-nesteruk-op, Jeeppler, bd, harukaeru, fedorovr and 4 more
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4