处理arraylist的子类作为数组

时间:2014-06-11 13:34:02

标签: jersey tomcat7 java-6 swagger

我们有一个使用Swagger注释注释的Jersey REST-API swagger UI适用于一个类的例外。此类扩展ArrayList<T>。而且我希望这个类由swagger作为数组来处理。但这种情况并非如此。它像任何其他复杂对象一样处理,其公共成员以swagger-ui显示。

这是我班级的代码摘要:

@JsonAutoDetect(getterVisibility = Visibility.NONE, fieldVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) 
public class ArraySubClass extends ArrayList<ElementClass> implements IAnInterface {

// constructors...

    public A getA() {
        // ...
    }
}

Swagger将此类显示为模型对象:

"ArraySubClass": {

    "id": "ArraySubClass",
    "description": "",
    "properties": {
        "a": {
            "$ref": "A"
        },
        "empty": {
            "type": "boolean"
        },
        "size": {
            "type": "integer",
            "format": "int32"
        }
    }
}

我能做什么,以便swagger 处理类(从ArrayList<T>扩展)作为数组,并且swagger只显示其元素而不是其他房产?

1 个答案:

答案 0 :(得分:1)

你可以直接在swagger中使用ElementClass类,因为这个

@ApiOperation(value = "/yourEndPoint", notes = "comment for endpoint", response = ElementClass.class, responseContainer = "List")

因此,您将在返回时将您的类的内容显示为列表,而不是您的ArraySubClass,其中可能包含您要隐藏的其他数据/内容! :)

有关详情,请参阅response container