swagger-core icon indicating copy to clipboard operation
swagger-core copied to clipboard

@Schema example overrides previous one when using same model on two request fields

Open eldarj opened this issue 2 years ago • 0 comments

Given a request body like so:

data class SampleRequest(
    @Schema(example = """{"name": "John", "lastname": "Doe"}""")
    val personOne: PersonDto?,

    @Schema(example = """{"name": "Jane", "lastname": "Smith"}""")
    val personTwo: PersonDto?,
)

with the following PersonDto

data class PersonDto (
    private val name: String?,
    private val lastname: String?,
)

doesn't work as expected. example defined on the second field personTwo overrides the first one.

Actual output

{
     "personOne": {
        "name": "Jane",
        "lastname": "Smith"
    },
    "personTwo": {
        "name": "Jane",
        "lastname": "Smith"
    }
}

Expected output

{
    "personOne": {
        "name": "John",
        "lastname": "Doe"
    },
    "personTwo": {
        "name": "Jane",
        "lastname": "Smith"
    }
}

Versions Spring Boot 2.7.7 Kotlin 1.7.10 Spring DOC OpenAPI 1.6.11 Swagger UI 4.14.0

eldarj avatar May 12 '23 08:05 eldarj