防止将相似的正则表达式映射合并到单个操作中大摇大摆

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

我正在处理的应用程序的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"
    }
}

但是我希望可能会有更好的解决方案。

java spring spring-mvc swagger swagger-codegen
1个回答
0
投票

因为这是不同的端点,所以为什么两者都使用相同的名称。

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