我试图将一些路径参数绑定到对象,以便我可以基于该类内部的注释进行所有验证。
它工作正常,但是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作为路径参数而不是查询?