我正在尝试使用Swagger Play2 Module为Play应用程序生成api文档 . 我们使用了许多值类来获得一些额外的类型安全性和代码可读性 .
其中一个操作为案例类生成JSON,如下所示:
case class MyResponse(prop1: MyValueType, prop2: MyValueType)
其中 MyValueType
是这样的值类:
case class MyValueType(value: String)
使用自定义 Format[T]
格式化为JSON的字符串 .
Swagger UI生成示例JSON代码,如下所示:
{
"prop1": {
"value": "string"
},
"prop2": {
"value": "string"
}
}
虽然我希望它产生这个:
{
"prop1": "string",
"prop2": "string"
}
我尝试过这样的自定义注释,但这似乎不起作用:
case class MyResponse(
@ApiModelProperty(dataType="string") prop1: MyValueType,
@ApiModelProperty(dataType="string") prop2: MyValueType,
)
有关如何完成此任务的任何提示?
2 回答
尝试使用大写的dataType =“String”
Swagger将
case class MyValueType
包裹在你的case class MyResponse
中 .它忽略了你的
dataType
注释,仍在解析MyValueType
您是否尝试使用更完整的属性注释?就像是:
顺便说一句,Swagger中的数据类型不区分大小写,因此
string
等同于String
.