Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,011
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
20
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. REST (REpresentational com Python State Transfer) Fábio Cerqueira
  • 2. Palestrante  Graduando em Ciência da Computação na UECE  Desenvolvedor Python na Mares Telecom  Coordenador do PugCE
  • 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. 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. WWW  Hipermídia  URI  HTTP
  • 6. HTTP  Baseado e mensagens com envelopes  Não mantêm estado  Métodos GET, POST, PUT, DELETE, HEADER, OPTIONS
  • 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. 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. 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. Arquitetura Orientada a Recursos  Recursos  Seus Nomes  Suas representações  Navegação
  • 11. Arquitetura Orientada a Recursos  Endereçamento  Falta de estado  Encadeamento  Interface Uniforme
  • 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. Python  Django http://www.djangoproject.com/  Django Piston http://bitbucket.org/jespern/django-piston  Código do exemplo do encurtador de url
  • 14. Dúvidas?
  • 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. eu.links = {'blog': 'fabiocerqueira.wordpress.com', 'bookmark': 'delicious.com/fabiocerqueira', 'repository': 'github.com/fabiocerqueira', 'microblog': 'twitter.com/fabiocerqueira'} eu.mail = 'cerqueirasfabio@gmail.com'
  • 17. obrigado!