Есть ли способ исправить ответы метода 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 , где в этом конкретном ответе «values» - это карта , а object - объект ModelA.
И предположим, у меня есть другой метод doSomeOtherStuff (), который возвращает объект ResponseEntity , где в этом случае «values» - это карта , а object - объект 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 остальным методам.
Редактировать: я использую springfox-swagger2 с springfox-swagger-ui.