3

我正在尝试将一些路径参数绑定到一个对象,以便我可以根据该类中的注释进行所有验证。

它工作正常,但 springfox 生成的 swagger 文档不会将类中的 @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视为路径参数而不是查询?

Swagger Editor 如何显示参数

4

0 回答 0