在Java / Spring ReST应用程序中,我使用了swagger-annotations 1.3.7我有许多小类(例如,GenderCode),我在我的ReST模型中用作属性。这些类有一个公共属性,称为 value 。使用Jackson,我的API可以接受一个简单的String s 并构造一个例如GenderCode的实例,其值设置为 s 。同样,它可以将GenderCode序列化为一个简单的String(当然它代表 value 的值)。
我希望我的Swagger文档将这些对象表示为简单字符串,因为它代表了JSON的外观。相反,它代表一个带有“值”键的复杂类型:
{
"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,但这没有效果。有关如何做到这一点的任何想法?