A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

 RESTful Webservices Lucas Batistussi – 8440792 Thiago Gottardi – 8428398.

Apresentações semelhantes


Apresentação em tema: " RESTful Webservices Lucas Batistussi – 8440792 Thiago Gottardi – 8428398."— Transcrição da apresentação:

1  RESTful Webservices Lucas Batistussi – Thiago Gottardi –

2 Roteiro  Introdução  Web Service  SOAP  HTTP  REST  Exemplos de REST  Apresentação Prática  Aula Prática

3 Web Service  Uma aplicação servidora que permite interação de máquinas sobre a rede.  Forma interoperável de transmitir dados. A Web service is a software system designed to support interoperable machine-to-machine interaction over a network.

4 SOAP  Padrão mais completo que REST para webservice;  Tráfego 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 tráfego;  Pouco inteligível para humanos;  Proposta REST:  Utilizar outros métodos HTTP para diminuir:  Trafego;  Tamanho da URL.

7 HTTP  Protocolo de Transmissão de Hipertexto 1.1 (RFC 2616)  URI:  servidor / caminho_do_recurso 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 Transmissão de Hipertexto 1.1 (RFC 2616)  GET:  Permite a um cliente (ex: browser) requisitar uma informação: Fonte:http://datatracker.ietf.org/doc/rfc2616/ GET /caminho/recurso/instancia HTTP/1.1 From: User-Agent: Navegador Content-Type: text/html HTTP/ OK Date: Wed, 4 Jun :59:59 GMT Content-Type: text/html; charset=utf-8 Content-Length: 1354 Cliente Servidor

9

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

11

12 HTTP  Protocolo de Transmissão 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: User-Agent: Navegador HTTP/ OK Cliente Servidor

13 HTTP  Método DELETE  Deletar um recurso  Não é suportado pela maioria dos browsers en forms  XMLHttpRequest (AJAX calls) OK  Solução: utilizar o método POST e um parâmetro de formulário do tipo “hidden”, como “_method” com o valor correspondente ao método!

14 Solução

15 HTTP  Protocolo de Transmissão de Hipertexto 1.1 (RFC 2616)  PUT:  Permite a um cliente colocar instancia de recurso no servidor: PUT /caminho/recurso/ HTTP/1.1 From: User-Agent: Navegador Content-Type: application/xml Content-Length: 89 Olá HTTP/ OK Cliente Servidor

16 HTTP  Método PUT  Inserir um recurso  Não é suportado em alguns browsers em Forms  XMLHttpRequest (AJAX calls) OK  Solução: mesma que a do DELETE!

17 REST  Métodos HTTP como PUT e DELETE são raramente usados por browsers e o internet explorer;  Representational State Transfer (REST)  Proposta REST:  Fazer uso desses métodos;  Estabelecer um padrão inteligível de um recurso:  Introduzido na tese de Roy Fielding (Universidade da Califórnia) (2000) após fazer parte da equipe que definiu o HTTP 1.1;  Conjunto de princípios para o design de Webservices.

18 REST  Uso:  Recurso como substantivo (URI – Universal Resource Identifier)  Ação como verbo (Métodos HTTP – POST, GET, PUT, DELETE, PATCH);  Tipo de Conteúdo (Content-Type MIME).  GET  Cacheable  GET não afeta conteúdo;  Abstração de camadas  Serviços podem ser divididos em N camadas;  “Padrão” Web 2.0;  Usado por websites como: Google, Facebook e Yahoo.

19 REST: Recursos  Entidade do sistema  Exposto pela URI  Estrutura hierárquica  URLs limpas e intuitivas, human-readable, easy to remember

20 REST: Recursos  Exemplo de URI conforme ministrada nesta aula: Endereço completo de um recurso Após a barra na frente de recurso pode-se especificar vários parâmetros Etc.

21 REST: Combinações  Um servidor pode ter comportamento diferente para cada uma das combinações entre:  Caminho;  Nome do Recurso;  Parâmetros;  Método HTTP;  Content-Type.

22 REST: Estado do Servidor  No REST:  GET é usado apenas para pegar informação sem afetar o conteúdo no servidor;  POST insere dados a uma instância de um recurso;  PUT insere uma instância de um recurso;  DELETE remove uma instância 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 opção (1) está incoerente pois altera o estado do servidor adicionando um usuário ao sistema  Na URI /users/name/Lucas o substantivo ou RECURSO é users  Forma REST de adicionar usuário:  PUT /users/name/Lucas HTTP/1.1

25 Princípios: statelessness  Não guarda informação sobre o estado atual da navegação no servidor (sessão)  Requisição contém todas as informações  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 memória)  Redução consumo de banda (cache)  Diminuição do tempo de resposta página (cache)

29 [{"created_at":"Wed May 22 20:48: ","id": ,"id_str":" ","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 usuário

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  Segurança  Tecnologia consolidada no mercado

32 SOAP x REST  REST:  Mensagens menores (apenas requisição)  Simples  Machine+Human-readable  Menos recursos que SOAP

33 Referências  /ws-restful/ /ws-restful/    /#webservice /#webservice


Carregar ppt " RESTful Webservices Lucas Batistussi – 8440792 Thiago Gottardi – 8428398."

Apresentações semelhantes


Anúncios Google