我正在处理的应用程序的Controller
映射类似于下面的示例:
@Api(tags = { "Some person API" })
@RestController
@RequestMapping("/person")
public class SomeController {
@ApiOperation(value = "GET person A or person B")
@GetMapping("{person:A|B}")
public void getPersonAorB(@PathVariable String person) {
// Perform action with person
}
@ApiOperation(value = "GET person C or person D")
@GetMapping("{person:C|D}")
public void getPersonCorD(@PathVariable String person) {
// Perform action with person
}
}
尽管端点工作正常,但Swagger不能区分端点/person/{A|B}
和/person/{C|D}
。结果,第一个或第二个映射在OpenAPI文档和swagger UI中都可用。
我已经尝试了几种方法来使Jenkins意识到端点之间的差异,例如在映射中添加@Api
和@ApiOperation
批注,但是并没有成功。我可以通过为每个端点创建一个单独的映射来解决此问题,例如:
@RestController
@RequestMapping("/person")
public class SomeController {
@GetMapping("A")
public void getPersonA() {
// Perform action with person "A"
}
}
但是我希望可能会有更好的解决方案。
因为这是不同的端点,所以为什么两者都使用相同的名称。