@Parameter(required = false) 在 swagger open api v3 中不起作用

Bas*_*ani 8 java maven swagger-ui spring-boot springdoc-openapi-ui

我的项目是 java spring boot 2 和 maven 。我使用 springdoc-openapi-ui 依赖项。问题是 @Parameter(required = false) 不适用于我的 api 参数。 在此输入图像描述

在此输入图像描述

小智 14

我不知道 Springdoc-openapi 支持多少 swagger 注释,但根据PetApiDemo中的/findByStatus/findByTags端点中的示例,您可以通过应用看到@RequestParam(required = false)这是一个 Spring 注释!参数已变为可选。

import org.springframework.web.bind.annotation.RequestParam;
default ResponseEntity<List<Pet>> findPetsByStatus(
        @Parameter(
                explode = Explode.TRUE, 
                name = "status", 
                in = ParameterIn.QUERY, 
                description = "Status values that need to be considered for filter", 
                style = ParameterStyle.FORM, 
                schema = @Schema(
                        type = "string", defaultValue = "available", 
                        allowableValues = {"available", "pending", "sold"}
                )
        )
        @Valid @RequestParam(value = "status", required = false)
        List<String> status) {
    return getDelegate().findPetsByStatus(status);
}
Run Code Online (Sandbox Code Playgroud)