java使用Swaggerannotation将复杂属性表示为字符串
在Java/Spring ReST应用程序中,我使用的是swagger annotations 1.3.7,我有许多小类(例如GenderCode),我在ReST模型中将它们用作属性。这些类有一个公共属性,称为value。使用Jackson,我的api可以接受一个简单的字符串s,并构造一个GenderCode实例,将其值设置为s。类似地,它可以将一个性别代码序列化为一个简单的字符串(这当然代表value的值)
我希望我的Swagger文档将这些对象表示为简单的字符串,因为这表示JSON的外观。相反,它表示一个带有“value”键的复杂类型:
{
"genderCode": {
"value": ""
},
...
}
它应该是这样的:
{
"genderCode": "",
...
}
下面是Java模型的样子:
public class Person {
@JsonProperty("genderCode")
@Valid
@KnownEnumValue
@ApiModelProperty(value = "GenderCode", dataType="string", required = false,
allowableValues=GenderCode.POSSIBLE_VALUES_DISPLAY)
private GenderCode genderCode;
...
}
以下是Swagger生成的API定义文件中该属性的定义:
"genderCode":{"enum":["ANY","M","F"],"description":"GenderCode","required":false,"type":"GenderCode"}
我尝试过使用OverrideConverter,但没有效果。你有没有想过如何做到这一点
共 (0) 个答案