Você já precisou explicitamente utilizar algum método (PUT, DELETE, POST, GET) do protocolo HTTP, muito dificil, geralmente quando o fazemos, nós fazemos isto ao desenvolver uma aplicação web para especificar o tipo de submit, enfim, agora encontraram uma solução muito útil para utilizar os tais métodos, que é através de REST (REpresentational State Transfer), que é o nome dado por Roy Fielding em sua tese de doutorado, muita gente confunde REST com Web Services SOAP, mas ambos são totalmente diferentes.
REST são serviços stateless e arquiteturas baseadas nela são construídas a partir de "pedaços de informação" únicas identificadas por URIs. Em sistemas REST, os recursos são manipulados através da troca de representações do recurso.
Ex.:
http://netfeijao.blogspot.com/colecao/marvel/spiderman/3
Neste exemplo, atráves desta URI estamos definindo como a URI mapeia nossos recursos, no exemplo fica muito fácil entender como funciona, identificamos nossa chave primária (3) no último elemento, e o nome da coleção (spiderman), podemos ainda definir um serviço que me retorne uma coleção de objetos do spiderman caso seja omitido a chave primária,
Por as URIs serem únicas ganhamos uma busca otimizada e posso ter multiplas representações oferecendo esta informação em vários tipos de formatos como XML, JSON e XHTML.
Temos um DE-PARA dos métodos HTTP com as funções CRUD que queremos desempenhar em um sistema baseado em REST, conforme tabela abaixo:
Características dos métodos HTTP em REST
Método GET.
Utilizado para retornar informação de acordo com a URI informada.
Não deve uma mudança de estado
Fica no cache.
Método POST
Utilizado para adicionar uma nova inforamação
Métodp PUT
• Utilize PUT para alterar uma informação
• Controle total na entidade utilizada quando o ID ou chave primária é conhecido
Ex.: PUT /colecao/marvel/spiderman/3-456789012
Método DELETE
Remove (logicamente) uma entidade
Ex.: DELETE /colecao/marvel/spiderman/3 (Exclui Spiderman nº 3)
Benefícios do REST.
Serviços baseados em REST são muito fáceis de entender e de se trabalhar, pois o cliente que vai utilizar o serviço REST não precisa utilizar nenhuma API especializada, ele utiliza apenas HTTP padrão =), podemos usar nosso browser para testes e experimentos.
URI é uma maneira uniforme de identificar recursos e o HTTP é o meio utilizado para manipular estes recursos.
Fácil consumir e desenvolver com linguagens de scripting..
Web Services SOAP vs Serviços REST
SOAP WS.
- Poucas URIs, muitos métodos customizados
- comicsPort.getComics("spiderman")
- Utiliza HTTP para trafegar mensagens SOAP.
- Muitos padrões (WS-*)
- Deve seguir um contrato WSDL.
ex: Serviço de venda de quadrinhos
comicService.vender("spiderman", 3, 250);
RESTful WS.
- Muitos recursos (URIs), poucos métodos fixos.
- HTTP é o protocolo de transporte.
(Resource-Oriented Architecture)
ex: Recurso de venda de quadrinhos
POST /colecao/marvel/spiderman/3-250
Para a construção de serviços baseados em REST em Java, foi disponibilizada o JAX-RS, que é uma API para Web Services RESTful, em breve vou blogar com exemplos no GlassFish
0 comentários:
Postar um comentário