Understanding RESTful and SOAP Web Services

Understanding RESTful and SOAP Web Services
paly

Learn about RESTful and SOAP Web Services from an introductory presentation with practical examples. Understand how Web Services allow for interoperable transmission of data over a network.

About Understanding RESTful and SOAP Web Services

PowerPoint presentation about 'Understanding RESTful and SOAP Web Services'. This presentation describes the topic on Learn about RESTful and SOAP Web Services from an introductory presentation with practical examples. Understand how Web Services allow for interoperable transmission of data over a network.. The key topics included in this slideshow are . Download this presentation absolutely free.

Presentation Transcript


1. RESTful Webservices Lucas Batistussi 8440792 Thiago Gottardi 8428398

2. Roteiro Introduo Web Service SOAP HTTP REST Exemplos de REST Apresentao Prtica Aula Prtica

3. Web Service Uma aplicao servidora que permite interao de mquinas sobre a rede. Forma interopervel de transmitir dados. A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice

4. SOAP Padro mais completo que REST para webservice; Trfego mensagens sobre HTTP ou outro protocolo; Simple Object Access Protocol Protocolo Simples de Acesso a Objetos; Representa recursos utilizando documento estruturado XML (wsdl).

5. Exemplo SOAP

6. SOAP Desvantagens do SOAP: Envelopes geram muito trfego; Pouco inteligvel para humanos; Proposta REST: Utilizar outros mtodos HTTP para diminuir: Trafego; Tamanho da URL.

7. HTTP Protocolo de Transmisso de Hipertexto 1.1 (RFC 2616) URI: http:// servidor / caminho_do_recurso O cliente conecta-se ao servidor e solicita o recurso; Fonte: http://datatracker.ietf.org/doc/rfc2616/

8. HTTP Protocolo de Transmisso de Hipertexto 1.1 (RFC 2616) GET: Permite a um cliente (ex: browser) requisitar uma informao: Fonte: http://datatracker.ietf.org/doc/rfc2616/ GET /caminho/recurso/instancia HTTP/1.1 From: usuario@endereco User-Agent: Navegador Content-Type: text/html HTTP/1.1 200 OK Date: Wed, 4 Jun 2013 23:59:59 GMT Content-Type: text/html; charset=utf-8 Content-Length: 1354 Cliente Servidor

10. HTTP Protocolo de Transmisso de Hipertexto 1.1 (RFC 2616) POST: Permite a um cliente (ex: browser) postar uma informao: Fonte: http://datatracker.ietf.org/doc/rfc2616/ POST /caminho/recurso/instancia HTTP/1.1 From: usuario@endereco User-Agent: Navegador Content-Type: application/x-www-form-urlencoded Content-Length: 30 nome=Thiago&numerousp=8428393 HTTP/1.1 200 OK Cliente Servidor

12. HTTP Protocolo de Transmisso de Hipertexto 1.1 (RFC 2616) DELETE: Permite a um cliente remover instancia de recurso no servidor: DELETE /caminho/recurso/instancia HTTP/1.1 From: usuario@endereco User-Agent: Navegador HTTP/1.1 200 OK Cliente Servidor

13. HTTP Mtodo DELETE Deletar um recurso No suportado pela maioria dos browsers en forms XMLHttpRequest (AJAX calls) OK Soluo: utilizar o mtodo POST e um parmetro de formulrio do tipo hidden, como _method com o valor correspondente ao mtodo!

14.

method="POST"> Soluo

15. HTTP Protocolo de Transmisso de Hipertexto 1.1 (RFC 2616) PUT: Permite a um cliente colocar instancia de recurso no servidor: PUT /caminho/recurso/ HTTP/1.1 From: usuario@endereco User-Agent: Navegador Content-Type: application/xml Content-Length: 89 Ol HTTP/1.1 200 OK Cliente Servidor

16. HTTP Mtodo PUT Inserir um recurso No suportado em alguns browsers em Forms XMLHttpRequest (AJAX calls) OK Soluo: mesma que a do DELETE!

17. REST Mtodos HTTP como PUT e DELETE so raramente usados por browsers e o internet explorer; Representational State Transfer (REST) Proposta REST: Fazer uso desses mtodos; Estabelecer um padro inteligvel de um recurso: Introduzido na tese de Roy Fielding (Universidade da Califrnia) (2000) aps fazer parte da equipe que definiu o HTTP 1.1; Conjunto de princpios para o design de Webservices.

18. REST Uso: Recurso como substantivo (URI Universal Resource Identifier) Ao como verbo (Mtodos HTTP POST, GET, PUT, DELETE, PATCH); Tipo de Contedo (Content-Type MIME). GET Cacheable GET no afeta contedo; Abstrao de camadas Servios podem ser divididos em N camadas; Padro Web 2.0; Usado por websites como: Google, Facebook e Yahoo.

19. REST: Recursos Entidade do sistema Exposto pela URI Estrutura hierrquica URLs limpas e intuitivas, human-readable, easy to remember

20. REST: Recursos Exemplo de URI conforme ministrada nesta aula: Endereo completo de um recurso http://servidor/aplicativo/recurso/ Aps a barra na frente de recurso pode-se especificar vrios parmetros http://servidor/aplicativo/recurso/parametro/ http://servidor/aplicativo/recurso/parametro/parametro/ http://servidor/aplicativo/recurso/parametro/parametro/parametro Etc.

21. REST: Combinaes Um servidor pode ter comportamento diferente para cada uma das combinaes entre: Caminho; Nome do Recurso; Parmetros; Mtodo HTTP; Content-Type.

22. REST: Estado do Servidor No REST: GET usado apenas para pegar informao sem afetar o contedo no servidor; POST insere dados a uma instncia de um recurso; PUT insere uma instncia de um recurso; DELETE remove uma instncia de um recurso;

23. Onde est o erro? GET /adduser/name/Lucas HTTP/1.1 GET /users/name/Lucas HTTP/1.1

24. Resposta!!! A opo (1) est incoerente pois altera o estado do servidor adicionando um usurio ao sistema Na URI /users/name/Lucas o substantivo ou RECURSO users Forma REST de adicionar usurio: PUT /users/name/Lucas HTTP/1.1

25. Princpios: statelessness No guarda informao sobre o estado atual da navegao no servidor (sesso) Requisio contm todas as informaes Natural do protocolo HTTP!

26. Statefull: exemplo GET /book1 HTTP/1.1 RESPONSE: {content:{}}

27. Stateless: exemplo GET /book1/page/1 HTTP/1.1 RESPONSE: {next:2, content:{}}

28. Stateless: vantagens Economia de recursos do servidor (principalmente memria) Reduo consumo de banda (cache) Diminuio do tempo de resposta pgina (cache)

29. [{"created_at":"Wed May 22 20:48:37 +0000 2013","id":337309045331460097,"id_str":"337309045331460097","text":"API v1 blackout testing is just about complete. API. }] GET https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rt s=true&screen_name=twitterapi&count=2 REQUEST RESPONSE: application/json; charset=utf-8 Exemplo: recuperar tweets de um usurio

30. Alguns frameworks com suporte RESTFul Popular Ruby On Rails Exemplo site: twitter.com ASP.NET Exemplos sites: microsoft.com, peixeurbano.com.br vRaptor brasileiro (USP)

31. SOAP x REST SOAP: Ocupa mais banda (troca mensagens) Mais complexo Machine-readable Maior flexibilidade Segurana Tecnologia consolidada no mercado

32. SOAP x REST REST: Mensagens menores (apenas requisio) Simples Machine+Human-readable Menos recursos que SOAP

33. Referncias http://www.ibm.com/developerworks/webservices/library /ws-restful/ http://www.w3.org/TR/soap12-part1/ http://datatracker.ietf.org/doc/rfc2616/ http://www.w3.org/TR/2004/NOTE-ws-gloss- 20040211/#webservice

Related