Swagger UI 强制参数为“必需”

问题描述 投票:0回答:1

我有 2 个相似的端点。

@GetMapping("/api/entity")
@SecurityRequirement(name = "Basic Authentication")
public List<EntityResponseDTO> getAll() { return entityService.getEntities(); }

@GetMapping("/api/entity")
public List<EntityResponseDTO> getAllInCity(@RequestParam("city") String city) { return entityService.getEntities(city); }

我还使用 Swagger 来生成 API 文档。这两个端点的问题是 Swagger 无法真正识别第一个端点。或者,更准确地说,它将它们连接起来。

当我打开 Swagger UI 时,我只看到其中之一:

GET /api/entity
。它既是安全的(因为第一个映射具有
@SecurityRequirement
)又是参数化的(第二个映射是
@RequestParam
)。问题是该参数在 UI 中设置为
required
,否则我无法设置它。我已经尝试过
@Parameter
注释,但似乎无法使其工作。

我希望能够 - 在 Swagger UI 中,显然 - 以授权用户身份查询所有实体,并以未登录用户身份查询城市中的所有实体。

spring-boot swagger-ui
1个回答
0
投票

@RequestParam
required
字段设置为 false 可以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.