将请求路径参数绑定到对象

时间:2018-07-11 17:41:50

标签: java spring swagger springfox path-parameter

我试图将一些路径参数绑定到对象,以便我可以基于该类内部的注释进行所有验证。

它工作正常,但是springfox生成的详尽文档不会将类中的@ApiParam注释重新识别为路径变量。相反,它将它们显示为查询变量,并告诉我我的yml存在语义错误:

  

路径上的语义错误。/{param1}/{param2}   需要在路径或操作级别将声明的路径参数“ param1”定义为路径参数

我可以通过使用@ApiImplicitParams来解决,但它的缺点是我必须将它用于可以接收该类对象,重复信息的每种方法。

在我的控制器中,我以这种方式设置了方法:

@GetMapping("{param1}/{param2}")
@ApiOperation(value="Returns a register of composite key param1|param2")
public RegisterDTO findRegisterByKey(@Valid RegisterKey registerKey)
{
    return this.service.findRegisterByKey(registerKey);
}

还有我的RegisterKey类

public class RegisterKey {

    @NotNull
    @Min(value = 1)
    @ApiParam(value = "First key", required = true)
    private Long param1;

    @NotNull
    @Min(value = 1)
    @ApiParam(value = "Second key", required = true)
    private Long param2;

    [... getters and setters ...]

}

我该怎么做才能使springfox生成spring json并看到param1和param2作为路径参数而不是查询?

How Swagger Editor shows the parameters

0 个答案:

没有答案