如何使用 Swagger 注释为 List<String> 生成语法正确的 JSON 示例

问题描述

我正在使用 springfox-boot-starter。有没有办法正确处理 example 字段的 List<String> 值?

@ApiModelProperty@Schema 都不会产生正确的结果。

import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;

public class MyRequest {
    @ApiModelProperty(dataType = "List",example = "[\"value1-1\",\"value1-2\"]")
    private List<String> list1;

    @Schema(type = "array",example = "[\"value2-1\",\"value2-2\"]")
    private List<String> list2;

    @Schema(example = "[\"value3-1\",\"value3-2\"]")
    private List<String> list3;
}

http://localhost:8080/swagger-ui/index.html生成的 JSON 请求示例如下:

{
  "list1": "[\"value1-1\",\"value1-2\"]","list2": "[\"value2-1\",\"value2-2\"]","list3": "[\"value3-1\",\"value3-2\"]"
}

而不是我所期望的

{
  "list1": ["value1-1","value1-2"],"list2": ["value2-1","value2-2"],"list3": ["value3-1","value3-2"]
}

Springfox 中似乎存在错误,请参阅 issue #3863issue #1855

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)