swagger中@ApiModelProperty注解example使用問題
example屬性默認是String的, 對應List的支持不好
@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
@ApiModelProperty(position = 2, dataType="List", example = "PRD1, PRD2, PRD3")
private List<String> productIdentifiers;
//This generates -> `"productIdentifiers": "PRD1, PRD2, PRD3"`
@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"
依賴版本
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
暫時還沒有適配
TLDR: One of the contributers on Swagger-API has worked on this functionality to add this in version 3.0.0 but it's not sure yet when this will be released. For now it stands on the feature/3.0.0-rc2 branch at the Swagger-API GitHub
I've been working with Swagger for almost two months now and as our project progressed issues like this showed up. Now I did some research and read on the GitHub pages for the Swagger-API that this feature simply doesn't work (yet).
As described here and [here would be an other link but my reputation is not high enough to post more than 2 links] this feature has been requested several times since August 2015 with not much luck.
Now on this issue on the Swagger-API github, one of the contributors commented:
This takes a major refactoring of the models, which is on the way. 3 March 2017
which lead to a later comment:
Will be supported in 3.0.0 support, please see the feature/3.0.0-rc2 branch for details. 27 June 2017
And on 9 August 2017 someone asked when the release of version 3.0.0 would be with no further response.
So in conclusion, support for examples for arrays/Lists has been worked on and should be available in version 3.0.0 but no more news on when that would be released.
取巧的解決方法
# 此方法只能顯示一個
public class MajorNutrientElements {
@ApiModelProperty(name = "majorName", value = https://www.cnblogs.com/eternityz/p/"食材名稱", example = "西紅柿", required = true)
private String majorName;
@ApiModelProperty(name = "nutrientElements", value = "食材對應的營養元素", allowableValues = "維生素E", required = true)
private List nutrientElements;
}
swagger中顯示
{
"majorName": "西紅柿",
"nutrientElements": [
"維生素E"
]
}
如果不寫example和allowableValues, 如下展示
{
"majorName": "西紅柿",
"nutrientElements": [
"string"
]
}

未驗證,據說可以解決的
@ApiModelProperty(value = https://www.cnblogs.com/eternityz/p/"Address", name = "addLines", dataType = "List",
example = "[AddLine1,AddLine2,AddLine3,AddLine4]")
渲染出來:
"addLines": [
"AddLine1",
"AddLine2",
"AddLine3",
"AddLine4"
]
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
io.springfox
springfox-bean-validators
2.9.2
站在巨人肩膀上摘蘋果
https://www.it1352.com/972727.html
https://github.com/swagger-api/swagger-core/issues/1855
https://stackoverflow.com/questions/40989038/swagger-apimodelproperty-example-value-for-liststring-property/50132642#
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27408.html
標籤:Java
上一篇:記錄一次mybatis快取和事務傳播行為導致ut掛的排查程序
下一篇:LeetCode–預測玩家
