Swagger 3 Open API 不显示具有相同端点但具有不同参数的 api 详细信息

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

我正在开发 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”之一。 你能告诉我需要进行哪些定制才能使其正常工作吗?

spring-boot swagger swagger-ui openapi swagger-3.0
2个回答
0
投票

Swagger 3 Open API不支持条件参数。(相同端点)

看这里。
https://github.com/OAI/OpenAPI-Specification/issues/256


0
投票

尽管此限制受到 OpenAPI 3.0 规范的约束,但可以通过一种解决方法在 OpenAPI YAML/JSON 中生成不同的路径。结果超出了规范,但与 Swagger UI、Postman 等完全兼容

我已在我的 GitHub 上发布了解决方法。

https://github.com/j-pep1/custom-spring-openapi-provider/

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