-
Notifications
You must be signed in to change notification settings - Fork 2.2k
@Schema oneOf config is ignored when generate the api-docs #4732
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
Comments
@abccbaandy could you clarify what your expectations are? And provide a complete example. |
My expectations should be like this, only child1 and child2(from my
@ponelat How about oneOf with |
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
The result is something like this
Seems the result does not come from my config.
Also I think oneOf should take string(
$ref
) instead class?The text was updated successfully, but these errors were encountered: