Как API отдыха будет возвращать как Json, так и XML-ответ в зависимости от входного заголовка? - PullRequest
1 голос
/ 10 июня 2019

Код выглядит следующим образом. Где я проверяю тип содержимого, извлеченный из заголовка, я хочу написать код и вернуть ответ тем же методом.

        @POST
        @Produces(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_XML)
        public Response addMessage(Message message , @Context UriInfo uriInfo, 
        @HeaderParam ("content-type") String contentType) throws 
        URISyntaxException
        {
        //Conditional check based on the content type.
        if(contentType.equals("application/json")) {
                    return json;
                }else {
                    return xml;
        }
        }

Как API отдыха будетвернуть как Json, так и XML ответ в зависимости от входного заголовка?

1 Ответ

1 голос
/ 10 июня 2019

Во-первых, использование нескольких @Produces для одного и того же метода неверно.String[] можно указать для всех типов, которые вы хотите создать с помощью @Produces, Тип аннотации производит

И по вашему основному вопросу я согласен с комментарием vlumi о том, что

Вы должны просто вернуть Response, созданный с возвращаемым объектом, и позволить JAX-RS обработать сериализацию в XML или JSON, в зависимости от того, что клиент ожидает / предпочитает

то есть пусть среда сделает это за вас в зависимости от заголовка Accept , как указано клиентом, как Радж уже упоминал в комментариях,

Вы должны передать заголовок запроса Accept: application /JSON или приложение / XML

Джерси, несколько продуктов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...