问题描述
大家好,我在尝试使用 swagger-jersey2-jaxrs maven artifact 版本 1.5.0 为我的 API 生成 swagger 文档时被卡住了。当我有一个模型类将自身引用为字段/属性时,就会出现问题。 swagger 引擎似乎没有接受它并生成不正确的 swagger JSON,最终使 swagger 编辑器抱怨并在 UI 上生成错误。这是我的模型
public class OrderItem {
public String POID;
public String id;
public String state;
public String action;
public int quantity;
public Boolean treatAsUnitItem;
public List<OrderItem> orderItems; //problematic
public String OrderItem_Id;
public String ProductOrder_Id;
}
这是在 JSON 中生成的 swagger 规范中的相关部分
"OrderItem": {
"type": "object","properties": {
"POID": {
"type": "string"
},"id": {
"type": "string"
},"state": {
"type": "string"
},"action": {
"type": "string"
},"quantity": {
"type": "integer","format": "int32"
},"orderItems": { //wrong makes the editor complain
"type": "array"
},"OrderItem_Id": {
"type": "string"
},"ProductOrder_Id": {
"type": "string"
}
}
}
我尝试过的事情无济于事
使用@ApiModelProperty 注释来注释属性并将引用值设置为 "#/deFinitions/OrderItem 并将类型值声明为 java.util.List
像这样@ApiModelProperty(reference="#/deFinitions/OrderItem",dataType="java.util.List")
请原谅我将其标记为 swagger 和 jersey,因为没有与特定 swagger-jersey2-jaxrs 相关的标记
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)