【问题标题】:@Parameter(required = false) not working in swagger open api v3@Parameter(required = false) 在 swagger open api v3 中不起作用
【发布时间】:2021-04-28 09:09:26
【问题描述】:

我的项目是带有 maven 的 java spring boot 2。我使用 springdoc-openapi-ui 依赖项。问题是 @Parameter(required = false) 不适用于我的 api 参数。

【问题讨论】:

  • 除了 Spring 注释之外,您是否尝试过使用 Swagger 特定的 @ApiParam 注释?
  • @Parameter 不是弹簧注释,所以不确定应该如何处理。您应该使用 @RequestParam 这是 Spring MVC 注释。
  • 谢谢。我的问题是属于 io.swagger.v3.oas.annotations.Parameter 的注释 @Parameter。默认情况下应该是 required = false,但在 swagger-ui 屏幕截图中显示,标有 * required!
  • 亲爱的@user991710.@ApiParam 属于 springfox-swagger ,我使用 springdoc-openapi-ui。
  • 感谢添加 @RequestParam 解决的 m-deinum 问题。

标签: java spring-boot maven swagger-ui springdoc-openapi-ui


【解决方案1】:

我不知道 Springdoc-openapi 支持多少 swagger 注释,但根据 /findByStatus/findByTags 端点中 PetApiDemo 的示例,您可以通过应用 @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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    相关资源
    最近更新 更多