我正在开发 Springboot 2.6.8 版本并使用 springdoc-open-ui 依赖项集成 Swagger 3。集成工作正常,Swagger-ui.html 显示 API 文档。但我有多个 API,它们具有相同的端点和不同的参数。因此,Swagger-ui 无法区分这些端点,并且不会在 UI 上显示它们中的任何一个。
端点:
@RequestMapping(value = "/title/find", params= {"provider", "offerEnd"}, method = RequestMethod.GET)
public List<Title> AMethodName(@RequestParam final String provider, @RequestParam final String offerEnd) {
}
@RequestMapping(value = "/title/find", params = {"channel","offerStart"}, method = RequestMethod.GET)
public List<Title> BMethodName(@RequestParam final String channel, @RequestParam final List<String> offerStart) {
}
@RequestMapping(value = "/title/find", params= {"provider","offerStart","titleBrief"}, method = RequestMethod.GET)
public List<Title> CMethodName(@RequestParam final List<String> provider, @RequestParam final List<String> offerStart, @RequestParam final String titleBrief) {
}
招摇依赖性
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.4</version>
</dependency>
Swagger UI 只能显示其中的“/title/find”之一。 你能告诉我需要进行哪些定制才能使其正常工作吗?
Swagger 3 Open API不支持条件参数。(相同端点)
看这里。
https://github.com/OAI/OpenAPI-Specification/issues/256
尽管此限制受到 OpenAPI 3.0 规范的约束,但可以通过一种解决方法在 OpenAPI YAML/JSON 中生成不同的路径。结果超出了规范,但与 Swagger UI、Postman 等完全兼容
我已在我的 GitHub 上发布了解决方法。