Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

REST com Python

4,915 views

Published on

Palestra sobre REST para o PyLestras dia 11/09/10 na FA7, evento realizado pelo PugCE

Published in: Technology
  • Be the first to comment

REST com Python

  1. 1. REST (REpresentational com Python State Transfer) Fábio Cerqueira
  2. 2. Palestrante  Graduando em Ciência da Computação na UECE  Desenvolvedor Python na Mares Telecom  Coordenador do PugCE
  3. 3. Palestra  A WEB  O protocolo HTTP  Web Service e REST  Clientes acessando recursos com REST  Arquitetura orientada a recursos  Construindo serviços REST  Trabalhando com Python a linguagem dos campeões
  4. 4. Conhecendo vocês...  Quem ainda não ouviu falar de web service?  Quem já consumiu um web service?  Quem já implementou um web service?  Quem já implementou um web service usando REST?
  5. 5. WWW  Hipermídia  URI  HTTP
  6. 6. HTTP  Baseado e mensagens com envelopes  Não mantêm estado  Métodos GET, POST, PUT, DELETE, HEADER, OPTIONS
  7. 7. GET /blog/ HTTP/1.1 Host: pug-ce.python.org.br User-Agent: Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.2.9) ... Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Cookie: __utma=139099058.1176665982.1258504221.1259506802.1260294479.3 Cache-Control: max-age=0 HTTP/1.1 200 OK HTTP Header Connection: Keep-Alive Keep-Alive: timeout=15 Transfer-Encoding: chunked Date: Sat, 10 Sep 2010 01:52:43 GMT Server: Cherokee/1.0.5 (Ubuntu) Content-Encoding: gzip Vary: Accept-Encoding Content-Type: text/html; charset=utf-8
  8. 8. REST (Representational State Transfer)  Roy Fielding  Uso de hipermídia  Uso de identificador universal pra Recursos  Conjuntos de operações bem definidas  Protocolo cliente/servidor sem estado
  9. 9. Clientes REST  Simples de implementar  Definir qual ação e quais dados usar  Formartar uma requisição HTTP  Analisar a resposta  Vários módulos para usar o HTTP  Serviços conhecidos possuem módulos Python prontos
  10. 10. Arquitetura Orientada a Recursos  Recursos  Seus Nomes  Suas representações  Navegação
  11. 11. Arquitetura Orientada a Recursos  Endereçamento  Falta de estado  Encadeamento  Interface Uniforme
  12. 12. Construindo um serviço (Encurtador de URL)  Conjunto de Dados  Definir recursos  Nomear Recursos  Construir Representações do cliente  Construir Representações do Servidor  Implementar
  13. 13. Python  Django http://www.djangoproject.com/  Django Piston http://bitbucket.org/jespern/django-piston  Código do exemplo do encurtador de url
  14. 14. Dúvidas?
  15. 15. Referências  Architectural Styles and the Design of Network-based Software Architectures(Chapter 5) - Roy Thomas Fielding - 2000  RESTful Web Services - Leonard Richardson, Sam Ruby - 2007
  16. 16. eu.links = {'blog': 'fabiocerqueira.wordpress.com', 'bookmark': 'delicious.com/fabiocerqueira', 'repository': 'github.com/fabiocerqueira', 'microblog': 'twitter.com/fabiocerqueira'} eu.mail = 'cerqueirasfabio@gmail.com'
  17. 17. obrigado!

×