【发布时间】:2016-12-06 06:23:26
【问题描述】:
我有一个班级,其中有一个属性是List<String>
public class MyClass {
....
@ApiModelProperty(position = 2)
private List<String> productIdentifiers;
....
}
此代码生成的示例值如下:
{
"customerId": "1001",
"productIdentifiers": [
"string"
],
"statuses": [
"NEW"
]
}
此处显示的示例值无效。我预期的示例值应该是这样的:
{
"customerId": "1001",
"productIdentifiers": [
"PRD1",
"PRD2",
"PRD3"
],
"statuses": [
"NEW"
]
}
我尝试传递如下示例属性,但它没有生成正确的值:
@ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3")
// This generates -> "productIdentifiers": "PRD1, PRD2, PRD3" // Its not json array
@ApiModelProperty(position = 2, example = "[\"PRD1\", \"PRD2\", \"PRD3\"]")
// This generates -> "productIdentifiers": "[\"PRD1\", \"PRD2\", \"PRD3\"]" // Its too not json array
有什么方法可以为 List 属性生成正确的示例值吗?
更新:
我已经尝试过@nullpointer 和@Zeeshan Arif 建议的解决方案
@ApiModelProperty(position = 2, dataType="List", example = "PRD1, PRD2, PRD3")
private List<String> productIdentifiers;
//This generates -> `"productIdentifiers": "PRD1, PRD2, PRD3"`
更新 2:
尝试了以下没有产生正确响应的方法
@ApiModelProperty(position = 2, dataType="java.util.List<String>", example = "PRD1, PRD2, PRD3")
// This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
@ApiModelProperty(position = 2, dataType="String[]", example = "PRD1, PRD2, PRD3")
// This generates -> "productIdentifiers": "PRD1, PRD2, PRD3"
我对 swagger jar 的 maven 依赖项是:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
<artifactId>mapstruct</artifactId>
<groupId>org.mapstruct</groupId>
</exclusion>
</exclusions>
</dependency>
【问题讨论】:
-
@Anil Bharadia 你对
dataType=List<String>"有什么回应?也只是为了精确测试,您使用的是什么招摇版本/依赖项? -
@nullpointer 我的所有尝试都得到“PRD1, PRD2, PRD3”。
-
@AnilBharadia 你解决了吗?我正在为同样的问题苦苦挣扎,现在在 Springfox 3.0.0 中,none 提供的答案对我不起作用。另见github.com/swagger-api/swagger-core/issues/1855 和github.com/swagger-api/swagger-core/issues/3863
-
@HonzaZidek 我从事那个项目已经很久了。据我记得,我无法解决这个问题。我已经尝试了一些答案,但没有尝试最近提供的答案。我将尝试创建一个示例项目来测试新答案是否有效。