如何告诉 Swagger 一个属性是一个 Map

How to tell Swagger an attribute is a Map

我正在使用 Jersey 开发 restful 服务。但是,我正在使用 Swagger 进行文档处理。我的模型有一个带有地图类型的 属性。 Swagger 将此属性显示为一个对象(不是特定类型)。那么我如何告诉 Swagger 这个 属性 来自 Map 类型?

public class Model {
    private String name;
    private Map<Integer, String> myMap;

    public Model(){
        super();
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Map<Integer, String> getMyMap() {
        return myMap;
    }
    public void setMyMap(Map<Integer, String> myMap) {
        this.myMap = myMap;
    }
}

restful 服务:

@POST
@Path("/createBundle")
@Consumes({MediaType.APPLICATION_JSON})
@ApiOperation(value = "Create Bundle ",
    notes = "",
    response = Model.class)
    public Model createBundle(Bundle bundle){
        return new Model();
    }

我需要 Swagger 将其显示为 Map<Integer, String>.

的类型

Swagger 将文档显示为这张图片。

您可以在@ApiOperation注解中设置响应类型:

@ApiOperation(value = "Find thingies as Map",
    notes = "Multiple thingies can be returned, <code>id</code> is the ID field",
    response = java.util.Map.class)