Swagger / Springfox自动生成响应示例

时间:2018-12-04 16:29:41

标签: rest api spring-boot swagger springfox

当前使用springfox 2.9.2来Swagger文档在Spring中创建的API。 我想在文档中添加示例响应,如下图所示;

enter image description here

我的理解是我可以做类似的事情:

@ApiResponses(value = {
    @ApiResponse(code = 200, message = "Success", 
            examples = @io.swagger.annotations.Example(
                value = {
                    @ExampleProperty(value = "{'snapshot':{'type': 'AAA'}}", mediaType = "application/json") 
                }))

在这种情况下,我将此代码段放在GET方法的上方。 不幸的是,上面的两个示例始终显示:标识符预期错误

但是我也看到我也可以这样做:

@ApiResponses(value = {
    ApiResponse(code = 200, message = "Success", response = MyModel.class,
    )
})

我还看到我可以添加一个@ApiOperation级的示例:

@ApiOperation(value = "Create a Account", nickname = "createAccount", notes = "Create a account", response = AccountResponse.class, tags={  })

我的问题是:

  1. 如何向Swagger文档中添加示例JSON响应?

  2. 最好将Swagger / Springfox指向我的模型/ bean,并使其自动生成示例响应,并针对bean /模型的每次更新自动更新。这是上面第二个代码段应该做的吗?

1 个答案:

答案 0 :(得分:0)

定义带有dto注释的示例:

@ApiModel("Crop")
public class CropDto {

    @ApiModelProperty(name = "Unique guid", position = 1, example = "7aaee0e2-6884-4fd7-ba63-21d76723dce2")
    public UUID id;
    @ApiModelProperty(name = "Unique code", position = 2, example = "squ")
    public String code;
    @ApiModelProperty(name = "Unique name", position = 3, example = "Squash")
    public String name;
    @ApiModelProperty(position = 4, example = "Cucurbita pepo L.")
    public String description;
}