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

Gerar XML e JSON dentro de um mesmo recurso SEM USAR JAXB

Boa tarde pessoal, tudo bem?

Eu gostaria de obter um Response do tipo XML ou Json no mesmo método, mas não gostaria de usar JAXB. Por exemplo:

Suponhamos que fiz uma requisição para o verbo abaixo, e coloquei no HEAD para aceitar xml, apesar de o conteúdo de retorno ser um Json

@GET

@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})

public void findOne(@PathParam("id") Long id)

{

Usuario usuario = new UsuarioDAO().findOne(id);

String conteudo = ConvertUtil.toJson(usuario);

return Response.ok(conteudo).build();

}

Se eu usasse o JAXB, bastaria eu substituir "conteudo", usado como parâmetro na Response, por "usuario". Assim ele retornaria em qualquer um dos dois formatos sem problemas.

Como eu poderia fazer o mesmo usando meus próprios conversores pessoais, como XStream e Gson? O jeito seria eu checar manualmente o head da requisição, para assim escolher qual return usar? Não haveria uma forma automática como essa do JAXB?

2 respostas

Li o outro tópico de título semelhante, vi os textos dos links recomendados, procurei no google, mas não achei uma sugestão específica para essa minha dúvida. Rsrsr

Tava pensando em fazer conferindo mesmo os heads dos requests que recebo, mas pode haver uma solução mais elegante.

solução!

Olá Bruno!

Pelo que pesquisei a melhor maneira é realmente utilizando a anotação @Produces passando o XML e JSON.

Se quiser fazer de forma diferente teria que ser feito manualmente mesmo.