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

Dúvida quanto a Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})

Olá pessoal como vai ?!

eu tenho o seguinte trecho de código..

como faço pra verificar dentro do método quando retornar em json e em xml???

@Path("/listAll")
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public String getAllEnterprises(){...}
3 respostas
solução!

Oi Alan,

Se for realmente um objeto que vc queira retornar, uma boa forma é retornar o objeto ao invés de uma String. Isto porque o próprio JAX-RS sabe converter o objeto pro formato certo que vier. Ficaria algo como:

@Path("/listAll")
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Enterprise> getAllEnterprises(){...}

Caso vc realmente queira montar a resposta na mão, você precisa receber como parâmetro o formato que foi enviado para o servidor e fazer um if com ele. Seria algo assim:

@Path("/listAll")
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public String getAllEnterprises(@HeaderParam("accept") String format){
    if(format.equals("json")){
        // JSON
    } else {
        // XML
    }
    //...
}

Abraço!

Obrigado pela ajuda!!! é que estou usando hibernate junto e acaba tendo o relacionamento bidirecional de forma que gera ciclo quando se envia a classe, gerando o erro 500, dai a necessidade de enviar como string.

Tranquilo! Precisando é só falar!

Abraço!