Closed
Description
Hi,
Issue similar to #1957
We have two response models Response1
and Response2
, both include model Item
. In Response2
item
marked as deprecated. In swagger json Item
marked as deprecated in both Response1
and Response2
instead of only Response2
.
If we remove @Deprecated
from Response2
and add into Response1
there is no deprecated flag in both Response1
and Response2
.
Example:
@RestController("/")
public class HelloController {
public record Item(int val) {}
public record Response1(Item item) {} // here item also marked as deprecated
public record Response2(@Deprecated @Schema(deprecated = true) Item item) {}
@GetMapping("1")
public Response1 test1() {
return new Response1(new Item(1));
}
@GetMapping("2")
public Response2 test2() {
return new Response2(new Item(1));
}
}
Json:
{
"components":
{
"schemas":
{
"Item":
{
"type": "object",
"properties":
{
"val":
{
"type": "integer",
"format": "int32"
}
},
"deprecated": true
},
"Response2":
{
"type": "object",
"properties":
{
"item":
{
"$ref": "#/components/schemas/Item"
}
}
},
"Response1":
{
"type": "object",
"properties":
{
"item":
{
"$ref": "#/components/schemas/Item"
}
}
}
}
}
}