Describe the bug
When headers are used for mapping a request to a controller method, springdoc-openapi adds an enum with just an empty string to the swagger schema definition.
To Reproduce
Steps to reproduce the behavior:
I use spring- boot 2.1.7 with springdoc-openapi 1.4.6. The code below works as expected:
@GetMapping
public String getMessageFromHeader(
@Parameter(name = "myHeader", description = "A header", schema = @Schema(type = "int32"))
@RequestHeader("myHeader") Integer header
) {
return "bar " + header;
}
and produces the following output:
parameters: [
{
name: "myHeader",
in: "header",
description: "A header",
required: true,
schema: {
type: "int32"
}
}
]
But when adding the headers as a requirement for the mapping in spring, the schema definition changes in an undesirable way:
@GetMapping(headers = {"myHeader"})
public String getMessageFromHeader(
@Parameter(name = "myHeader", description = "A header", schema = @Schema(type = "int32"))
@RequestHeader("myHeader") Integer header
) {
return "bar " + header;
}
The schema now contains an enum with an empty string as single entry.
parameters: [
{
name: "myHeader",
in: "header",
description: "A header",
required: true,
schema: {
type: "int32",
enum: [
""
]
}
}
]
When defining a list of allowed values in the schema, the generation fails completly:
@GetMapping(headers = {"myHeader"})
public String getMessageFromHeader(
@Parameter(name = "myHeader", description = "A header", schema = @Schema(allowableValues = {"foo", "bar"}))
@RequestHeader("myHeader") String header
) {
return "bar " + header;
}
Response of call to /v3/api-docs/:
{
status: "500",
code: "INTERNAL_SERVER_ERROR",
message: "My custom error message for 500 errors.",
detail: null
}
Expected behavior
Adding a header to the routing condition in spring should not impact the defined schema for the header parameter in any other way than marking it as required.
Describe the bug
When headers are used for mapping a request to a controller method, springdoc-openapi adds an enum with just an empty string to the swagger schema definition.
To Reproduce
Steps to reproduce the behavior:
I use spring- boot 2.1.7 with springdoc-openapi 1.4.6. The code below works as expected:
and produces the following output:
But when adding the headers as a requirement for the mapping in spring, the schema definition changes in an undesirable way:
The schema now contains an enum with an empty string as single entry.
When defining a list of allowed values in the schema, the generation fails completly:
Response of call to /v3/api-docs/:
Expected behavior
Adding a header to the routing condition in spring should not impact the defined schema for the header parameter in any other way than marking it as required.