在 swagger jersey 2 jaxrs 中自引用模型时生成的不正确的 swagger 文档

问题描述

大家好,我在尝试使用 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 (将#修改为@)