Два метода в файле ресурсов Rest с одним и тем же @Path, но с другим выходом mediaType

У меня есть 2 метода в моем файле ресурсов Java Rest с одним и тем же uri @Path, но разными @produces. Код ниже:

@GET
@Path("/messages")
@Produces(MediaType.APPLICATION_XML)
 public List<Message> getAllMessages() {


    return new ArrayList<Message>(service.getMessageMap().values());
}

@GET
@Path("/messages")
@Produces(MediaType.APPLICATION_JSON)
 public List<Message> getAllMessagesJSON() {


    return new ArrayList<Message>(service.getMessageMap().values());
}

когда я тестирую его с помощью клиента отдыха POSTMAN, я всегда получаю вывод JSON!! Может кто-нибудь объяснить, почему?? И если я хочу получить xml, а также выходы json, что делать ?? Я попытался изменить тип содержимого на application/xml... но я всегда получаю json!!


person Nilotpal    schedule 09.12.2015    source источник


Ответы (1)


Content-Type указывает на тип данных, отправляемых либо клиентом в виде заголовка request, либо сервером в виде заголовка response. Таким образом, вы, как клиент, отправляете заголовок бесполезно, так как вы не отправляете никаких данных. Для клиента, когда он хочет сообщить серверу, какой тип ему нужен, он использует заголовок Accept: <media-type>.

Когда нет набора заголовков Accept, обычно по умолчанию используется */*, оставляя на усмотрение, какой метод выбрать в вашем случае.

person Paul Samsotha    schedule 10.12.2015