Swagger-UI泛型映射

时间:2018-07-02 10:17:06

标签: java generics swagger swagger-ui springfox

是否有通过适当的实现来纠正将泛型用作响应子字段的Map方法响应的方法?示例:

假设我有一个通用的响应类:

public class Response {
    private String createdOn;
    //other fields
    private Map<String, Object> values;
    private Model object;
    //getters and setters
}

通用模型类:

public class Model{
}

A类模型:

public class ModelA extends Model{
    private String name;
    private String lastname;
    //getters and setters
}

模型B:

public class ModelB extends Model{
    private int number;
    private boolean isTrue;
    //getters and setters
}

doSomeStuff()方法返回一个ResponseEntity ,在此特定响应中,“值”是map ,对象是ModelA对象。

并且假设我有另一个方法doSomeOtherStuff(),该方法返回ResponseEntity 对象,在这种情况下,“值”是map <字符串,AnotherRandomObject>,对象是ModelB对象。

有什么方法可以将第一种方法的响应子字段映射到适当的子字段?使用swagger-UI,两种方法的全部功能如下:

{
  "createdOn": "string",
  // other fields
  "model": {},
  "values": {}
}

我想要以下内容: doSomeStuff():

{
  "createdOn": "string",
  // other fields
  "model": {
    "name": "string",
    "lastname": "string",
  }
  "model": {
    //All the subfields of SomeRandomObject
  },
}

doSomeOtherStuff():

{
  "createdOn": "string",
  // other fields
  "model": {
    "number": "int",
    "isTrue": "boolean",
  }
  "model": {
    //All the subfields of AnotherRandomObject
  },
}

因为它显然无法确定在实现级别返回的对象类型。

P.S。以上类为例。我非常感谢帮助使文档正常工作,而不是提供重构方法,因为上述逻辑已应用于100多种rest方法。

编辑:我正在使用springfox-swagger2和springfox-swagger-ui。

0 个答案:

没有答案