rest com python
DESCRIPTION
Palestra sobre REST para o PyLestras dia 11/09/10 na FA7, evento realizado pelo PugCETRANSCRIPT
REST(REpresentational State Transfer) com PythonFábio Cerqueira
Palestrante
Graduando em Ciência da Computação na UECE
Desenvolvedor Python na Mares Telecom
Coordenador do PugCE
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
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?
WWW
Hipermídia
URI
HTTP
HTTP
Baseado e mensagens com envelopes
Não mantêm estado
Métodos GET, POST, PUT, DELETE, HEADER, OPTIONS
HTTP/1.1 200 OKConnection: Keep-AliveKeep-Alive: timeout=15Transfer-Encoding: chunkedDate: Sat, 10 Sep 2010 01:52:43 GMTServer: Cherokee/1.0.5 (Ubuntu)Content-Encoding: gzipVary: Accept-EncodingContent-Type: text/html; charset=utf-8
GET /blog/ HTTP/1.1Host: pug-ce.python.org.brUser-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.8Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 115Connection: keep-aliveCookie: __utma=139099058.1176665982.1258504221.1259506802.1260294479.3Cache-Control: max-age=0
HTTP Header
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
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
Arquitetura Orientada a Recursos
Recursos
Seus Nomes
Suas representações
Navegação
Arquitetura Orientada a Recursos
Endereçamento
Falta de estado
Encadeamento
Interface Uniforme
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
Python
Djangohttp://www.djangoproject.com/
Django Pistonhttp://bitbucket.org/jespern/django-piston
Código do exemplo do encurtador de url
Dúvidas?
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
eu.links = {'blog': 'fabiocerqueira.wordpress.com',
'bookmark': 'delicious.com/fabiocerqueira',
'repository': 'github.com/fabiocerqueira',
'microblog': 'twitter.com/fabiocerqueira'}
eu.mail = '[email protected]'
obrigado!