Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Gerar XML e JSON dentro de um mesmo recurso.

Tenho o recurso criado abaixo, muito próximo ao das aulas. Detalhe: Na aula 4, o instrutor diz que vai instruir como gerar XML e JSON dentro de um mesmo recurso em aulas posterior, mas não há, não houve menção sobre isso.

Vamos ao recurso.

package br.com.eicon.loja.resource;

import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType;

import br.com.eicon.loja.dao.PedidoDAO; import br.com.eicon.loja.modelo.Pedido;

@Path("pedidos") public class PedidoResource {

@Path("{numControle}")
@GET
@Produces(MediaType.APPLICATION_XML)
public String buscaPedidoXML(@PathParam("numControle") long numControle) {
    Pedido pedido = new PedidoDAO().busca(numControle);
    return pedido.toXML();
}

@Path("{numControle}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String buscaPedidoJSON(@PathParam("numControle") long numControle) {
    Pedido pedido = new PedidoDAO().busca(numControle);
    return pedido.toJSON();
}    

}

Estou efetuando as chamadas abaixo pelo CURL.

curl -v -H "Content-Type: application/xml" http://localhost:8080/pedidos/1

ou

curl -v -H "Content-Type: application/json" http://localhost:8080/pedidos/1

Porém, se eu executar a chamada com xml e após com JSON, o resultado será sempre o da primeira execução ou seja, XML mesmo chamando com header JSON.

Como contornar isso ?

3 respostas
solução!

Boa tarde, Jefferson! Como vai?

O formato retornado é controlado pelo cabeçalho "Accept" do HTTP. Dá uma olhada no exemplo desse link que deve resolver o seu problema!

Qualquer coisa é só falar!

Grande abraço e bons estudos!

Cara que site fantástico... vou dar uma olhada...

Eu consegui resolver com um exemplo que encontrei no trabalho...

Muito obrigado.

Por nada, Jefferson! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software