Olá Pessoal!
Estou implementando um WebService RESTful usando o Jersey mas me bateu uma dúvida.. Qual seria a melhor forma de enviar 2 objetos (ou mais) para o ws (resource)? Quando mandamos um objeto somente, o Jersey faz o parse para JSON e o servidor recebe normalmente. Exemplo:
Servidor:@Path("/produto")
public class ProdutoResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Produto add (Produto p) {
//... qualquer coisa que modifique o produto aqui
return p;
}
}
Client c = Client.create();
WebResource wr = c.resource("http://localhost:8080/aplicacao/rest/produto");
Produto p = new Produto(...);
Produto pRet = wr.type(MediaType.APPLICATION_JSON).post(Produto.class, p);
Ou seja, a conversão para JSON é feita implicitamente (em ambos os lados)..
Até aí ta tranquilo, mas o que eu preciso é fazer algo como:
@Path("/produto")
public class ProdutoResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Produto add (Produto p, Cliente c) {
// aqui eu teria que ter um objeto produto e um objeto cliente, através do JSON
return p;
}
}
Existe alguma maneira de eu passar isso pelo cliente Jersey e receber desta forma no servidor? Ou terei que encapsular estes 2 objetos em um só (mesmo que eles não se vinculem semanticamente)?
Já li a documentação do Jersey mas não tem nada deste tipo lá.. Se alguém puder ajudar ou dar alguma dica, ficarei grato.
Valeu!