У меня есть конечная точка, написанная на Java WS. Используются следующие классы DTO:
public class MainResponseDTO extends PaginationResponseDTO {
private List<MainDTO> mainDTOs;
public List<MainDTO> getMainDTOs() {
return mainDTOs;
}
public void setMainDTOs(List<MainDTO> mainDTOs) {
this.mainDTOs = mainDTOs;
}
}
И этот класс расширяет PaginationResponseDTO
public class PaginationResponseDTO {
private int page;
private int limit;
private long size;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
}
Так я отправляю ответы.
@POST
@Path("/demo")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response getExpiredAndDueDocumentsWithPagination() {
MainResponseDTO response = new MainResponseDTO();
// Used this for diagnosis
logger.debug(new Gson().toJson(response));
return Response.ok().entity(response).build();
}
Тем не менее, ответ на доступ к вышеуказанному URL (через Почтальона или Curl) дает следующий ответ:
{
"type": "mainResponseDTO",
"limit": 0,
"page": 0,
"size": 0
}
Я не использовал свойство "type" ни в одном из DTO, тогда как оно добавляется. Я также записал в JSON String представление ответа DTO с помощью GSON непосредственно перед возвратом ответа, который выглядит следующим образом.
{"page":0,"limit":0,"size":0}
Как свойство "type" попало внутрь ответа? Где я ошибся в своем подходе?
Если детали, представленные в вопросе, недостаточны, дайте мне знать, какие дополнительные требуются.