rest com python

18

Click here to load reader

Upload: fabiocerqueira

Post on 03-Jul-2015

3.171 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: REST com Python

REST(REpresentational State Transfer) com PythonFábio Cerqueira

Page 2: REST com Python

Palestrante

Graduando em Ciência da Computação na UECE

Desenvolvedor Python na Mares Telecom

Coordenador do PugCE

Page 3: REST com Python

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

Page 4: REST com Python

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?

Page 5: REST com Python

WWW

Hipermídia

URI

HTTP

Page 6: REST com Python

HTTP

Baseado e mensagens com envelopes

Não mantêm estado

Métodos GET, POST, PUT, DELETE, HEADER, OPTIONS

Page 7: REST com Python

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

Page 8: REST com Python

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

Page 9: REST com Python

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

Page 10: REST com Python
Page 11: REST com Python

Arquitetura Orientada a Recursos

Recursos

Seus Nomes

Suas representações

Navegação

Page 12: REST com Python

Arquitetura Orientada a Recursos

Endereçamento

Falta de estado

Encadeamento

Interface Uniforme

Page 13: REST com Python

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

Page 14: REST com Python

Python

Djangohttp://www.djangoproject.com/

Django Pistonhttp://bitbucket.org/jespern/django-piston

Código do exemplo do encurtador de url

Page 15: REST com Python

Dúvidas?

Page 16: REST com Python

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

Page 17: REST com Python

eu.links = {'blog': 'fabiocerqueira.wordpress.com',

'bookmark': 'delicious.com/fabiocerqueira',

'repository': 'github.com/fabiocerqueira',

'microblog': 'twitter.com/fabiocerqueira'}

eu.mail = '[email protected]'

Page 18: REST com Python

obrigado!