如何在 Spring Boot 中集成的 Swagger 中列出两次相同的 GET 方法
How to list twice the same GET method in Swagger integrated in Spring Boot
我有一个 @RestController
和 GET
方法来列出资源的所有实例 R
我希望swagger-ui
像这样列出三次GET
方法:
- findRByFoo
- findRByBar
- 找到RByFooAndBar
对应于以下 GET
个请愿书:
/resources?foo=myFoo
/resources?bar=myBar
/resources?foo=myFoo&bar=myBar
这样我的 API 休息的客户就不必猜测他们可以通过 foo
或 bar
进行搜索,只需查看 swagger-ui
(版本 2.9.2
)并使用那些 API 调用
但是,鉴于这三个方法都在/resources
路径下,swagger只列出其中一个,而且只列出一个。
问题是,如何列出三个 API 调用?
编辑:这似乎是 Swagger 2 Unable to add multiple operations on same path in swagger rest API documentation #1378 的限制,所以让我将问题改写为:
- 如何绕过这个限制?
- 是不是说我的APIRest的设计不尽如人意Rest?
我重写了 RController
以获得单个 GET
@RestController("/path-to-r")
public class RController
{
@GetMapping
public List<R> findR(Optional<String> foo, Optional<String> bar)
{
....
}
}
并添加了 genericModelSubstitutes
,如 Java 8 Optional @RequestParam lost from the swagger-ui #1848
中所述
最终结果是,当我的 API 的客户点击组合时,他们可以看到要包含在 GET
请愿书
中的两个可选参数
我有一个 @RestController
和 GET
方法来列出资源的所有实例 R
我希望swagger-ui
像这样列出三次GET
方法:
- findRByFoo
- findRByBar
- 找到RByFooAndBar
对应于以下 GET
个请愿书:
/resources?foo=myFoo
/resources?bar=myBar
/resources?foo=myFoo&bar=myBar
这样我的 API 休息的客户就不必猜测他们可以通过 foo
或 bar
进行搜索,只需查看 swagger-ui
(版本 2.9.2
)并使用那些 API 调用
但是,鉴于这三个方法都在/resources
路径下,swagger只列出其中一个,而且只列出一个。
问题是,如何列出三个 API 调用?
编辑:这似乎是 Swagger 2 Unable to add multiple operations on same path in swagger rest API documentation #1378 的限制,所以让我将问题改写为:
- 如何绕过这个限制?
- 是不是说我的APIRest的设计不尽如人意Rest?
我重写了 RController
以获得单个 GET
@RestController("/path-to-r")
public class RController
{
@GetMapping
public List<R> findR(Optional<String> foo, Optional<String> bar)
{
....
}
}
并添加了 genericModelSubstitutes
,如 Java 8 Optional @RequestParam lost from the swagger-ui #1848
最终结果是,当我的 API 的客户点击组合时,他们可以看到要包含在 GET
请愿书