-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
@Schema oneOf config is ignored when generate the api-docs #4732
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"
}
]
}
}
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in 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: