-
-
Notifications
You must be signed in to change notification settings - Fork 523
@Schema oneOf config is ignored when generate the api-docs #2705
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Labels
incomplete
incomplete description: Make sure you Provide a Minimal, Reproducible Example - with HelloController
Comments
There is no definition of This ticket will be closed, but can be reopened if your provide the reproducible sample. |
Here is the smallest working code for the issue. pojo define @JsonSubTypes({
@JsonSubTypes.Type(value = Child1.class),
@JsonSubTypes.Type(value = Child2.class),
@JsonSubTypes.Type(value = Child3.class),
})
@Data
public abstract class Parent {
private String parentProperty;
}
@EqualsAndHashCode(callSuper = true)
@Data
public class Child1 extends Parent {
private String childProperty1;
}
@EqualsAndHashCode(callSuper = true)
@Data
public class Child2 extends Parent {
private String childProperty2;
}
@EqualsAndHashCode(callSuper = true)
@Data
public class Child3 extends Parent {
private String childProperty3;
} usage in controller @Data
public class MyRequest {
@Schema(oneOf = {Child1.class, Child2.class})
private Parent parent;
}
@PostMapping("swaggerTest")
public String swaggerTest(@RequestBody MyRequest myRequest) {
return null;
} api-docs "components": {
"schemas": {
"Child1": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Parent"
},
{
"type": "object",
"properties": {
"childProperty1": {
"type": "string"
}
}
}
]
},
"Child2": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Parent"
},
{
"type": "object",
"properties": {
"childProperty2": {
"type": "string"
}
}
}
]
},
"Child3": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Parent"
},
{
"type": "object",
"properties": {
"childProperty3": {
"type": "string"
}
}
}
]
},
"MyRequest": {
"type": "object",
"properties": {
"parent": {
"oneOf": [
{
"$ref": "#/components/schemas/Child1"
},
{
"$ref": "#/components/schemas/Child2"
},
{
"$ref": "#/components/schemas/Child3"
}
]
}
}
},
"Parent": {
"type": "object",
"properties": {
"parentProperty": {
"type": "string"
}
},
"oneOf": [
{
"$ref": "#/components/schemas/Child1"
},
{
"$ref": "#/components/schemas/Child2"
}
]
}
}
} |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
incomplete
incomplete description: Make sure you Provide a Minimal, Reproducible Example - with HelloController
What version of spring-boot you are using?
3.3.3
What modules and versions of springdoc-openapi are you using?
2.6.0
What is the actual and the expected result using OpenAPI Description (yml or json)?
should be
Also, according to this issue
#2704
I think this issue relate to Springdoc now, instead swagger core, because even I use my own converter to "fix" it, it will overwrite by Springdoc's converter.
The text was updated successfully, but these errors were encountered: