我有一个带有两个 endpoints 的控制器类
@RestController
@RequestMapping
public class TestController {
@RequestMapping(
value= "/test",
method = RequestMethod.GET)
@ResponseBody
public String getTest() {
return "test without params";
}
@RequestMapping(
value= "/test",
params = {"param"},
method = RequestMethod.GET)
@ResponseBody
public String getTest(@PathParam("param") int param) {
return "test with param";
}
}
一个有参数,一个没有,两者都有效 .
如果我使用curl或Web浏览器来命中 endpoints
http:// localhost:8081 / test
回报
没有参数的测试
和
http:// localhost:8081 / test?param = 1
回报
用param测试
但是招摇的ui只显示没有参数的那个 .
如果我使用参数to更改请求的请求映射中的值
@RequestMapping(
value= "/testbyparam",
params = {"param"},
method = RequestMethod.GET)
Swagger UI正确显示两个 endpoints ,但我不想根据swagger将显示或不显示的 endpoints 来定义 endpoints .
有没有什么方法让我能够通过匹配值正确显示 endpoints ,但不同参数?
编辑澄清:
endpoints 工作得非常好; / test和/ test?param = 1都工作得很好,问题是swagger-ui不会显示它们 .
我希望swagger ui能够显示我已经定义的 endpoints ,但如果不能,那么我将不得不忍住swagger-ui错过了我的一些 endpoints .
编辑参考:
明确地说不要用斜杠分隔查询字符串
他们还说“在查询字符串之前不应该有斜杠 . ”