I have one class in which there is one property which is List<String>
public class MyClass { .... @ApiModelProperty(position = 2) private List<String> productIdentifiers; .... }
This code generates the example values as following:
{ "customerId": "1001", "productIdentifiers": [ "string" ], "statuses": [ "NEW" ] }
The example values here shown are not valid. My expected example values should be like :
{ "customerId": "1001", "productIdentifiers": [ "PRD1", "PRD2", "PRD3" ], "statuses": [ "NEW" ] }
I have tried passing example attribute as following but it is not generating proper value:
@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
Is there any way I can generate proper example value for List property ?
Update :
I have tried the solutions suggested by @nullpointer and @Zeeshan Arif
@ApiModelProperty(position = 2, dataType="List", example = "PRD1, PRD2, PRD3") private List<String> productIdentifiers; //This generates -> `"productIdentifiers": "PRD1, PRD2, PRD3"`
Update 2 :
Tried following approach which did not generate proper response
@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"
my maven dependency for swagger jar is :
<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>
Update github ticket for this issue
I managed to get this to work, generating a List of Strings.
Within the ApiModelProperty with springfox 2, write your example as follows:
example = "[\"AddLine1\",\"AddLine2\",\"AddLine3\",\"AddLine4\"]"
Here is my example:
@ApiModelProperty(value = "Address", name = "addLines", example = "[\"AddLine1\",\"AddLine2\",\"AddLine3\",\"AddLine4\"]")
When I render the swagger page, I get the following output:
"addLines": [ "AddLine1", "AddLine2", "AddLine3", "AddLine4" ],
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With