Dando continuidade à série de desenvolvimento de aplicações REST com Spring, neste post eu darei um exemplo de como realizar PUT e DELETE nas suas aplicaçoes Android com a utilização do Spring.
Caso não tenha visto os posts anteriores, confira em: Desenvolvimento REST com Android, Consumindo JSON com Spring e Realizando POSTs com SpringAndroid.
A seguir, serão demonstradas algumas formas de enviar PUT e DELETE à um servidor, de acordo com o que a função espera receber.
Primeiro, enviaremos uma classe para um serviço que recebe um @RequestBody:
Serviço que recebe o PUT:
[cc lang=”java”]
@RequestMapping(value = “/model”, method = RequestMethod.PUT)
@ResponseBody
public Contato criarContatoModel(@RequestBody final Contato contato) {
// Implementação do método…
}
[/cc]
Para o envio de um PUT a um servidor, utilizamos métodos mais genéricos, que permitem o envio de outros tipos de métodos Http. No trecho de código a seguir, utilizamos o método exchange para enviar uma entidade contato dentro do body de um HttpEntity ao serviço.
[cc lang=”java”]
public void onClick(final View v) {
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
Contato contatoRequest = new Contato(“João”, “0000-0000”,
“email@email.com”, “@twitter”, “/facebook”);
contatoRequest.setId(1L);
HttpEntity
contatoRequest);
ResponseEntity
“
HttpMethod.PUT, contatoEntity, Contato.class);
// Tratamento com o contato recebido…
}
[/cc]
A chamada de um serviço de DELETE que recebe apenas o ID da entidade na URL é bastante simples:
[cc lang=”java”]
@RequestMapping(value = “/{id}”, method = RequestMethod.DELETE)
public void deletarContato(@PathVariable final Long id) {
// Deletar contato
}
}
[/cc]
Método de envio do DELETE:
[cc lang=”java”]
public void onClick(final View v) {
Contato contatoRequest = new Contato(“João”, “0000-0000”,
“email@email.com”, “@twitter”, “/facebook”);
restTemplate.delete(“
+ contatoRequest.getId().toString());
}
[/cc]
Este foi mais um post da série Android, espero que tenham gostado. Quaisquer dúvidas, sugestões e/ou reclamações, comentem!
_________________________________________
Lucas Oliveira – Analista Programador na redspark.
Bacharel em Sistemas de Informação pela Universidade de São Paulo.
@OliveiraLima_