Skip to content

Redundant deprecation #1990

Closed
Closed
@apervushin

Description

@apervushin

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"
                    }
                }
            }
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidThis doesn't seem right

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions