Você está na página 1de 41

Como eu expliquei REST pra minha namorada

Ryan Tomayko

Quem Roy Fielding?

Quem Roy Fielding?


um cara. Bem esperto.

Ajudou a escrever os primeiros servidores web; Fez pesquisas explicando porque a web
funciona como ela funciona;

O nome dele est na especicao do protocolo


usado para transferir pginas dos servidores para os navegadores.

Como a web funciona


HTTP

Informa ao navegador qual protocolo utilizar; Uma das mais importantes descobertas da
histria da computao;

Descreve a localizao de algo em qualquer GPS para informaes e conhecimento.

lugar do mundo para qualquer lugar do mundo;

Para pginas web?


Para qualquer coisa. A web construda sobre um estilo arquitetural chamado:

REST

REST
Representational State Transfer REST tem uma denio de recurso, que o que o HTTP referencia.

Pgina web um recurso?

Pgina web um recurso?


Uma pgina web uma representao de um
recurso. Recursos so apenas conceitos; em algum lugar;

A URL diz ao navegador que existe um conceito O navegador requisita uma representao
especca daquele conceito.

Existem outros tipos de representao? Representaes no so muito usadas =( A maioria dos recursos tm apenas uma
representao;

Esperamos que representaes sejam mais


usadas no futuro, j que um monte de novos formatos esto surgindo.

Como quais?

Como quais?
Web Service

Signica um monte de coisa diferente pra um


monte de gente diferente; maneira que as pessoas.

As mquinas podem usar a web da mesma

Isso coisa de rob?


Computadores podem usar os mesmos protocolos para enviar mensagens uns para os outros.

Ns fazemos isso h bastante tempo; Nenhuma tcnica que usamos hoje funciona
bem quando necessrio falar com todas as mquinas de todo o mundo.

Por que no?


Na poca de Fielding, falar com qualquer
mquina em qualquer lugar era de suma importncia; esses requisitos; mquinas.

A maioria das tcnicas que usamos no tem Precisam falar apenas com pequenos grupos de

E agora?
Precisamos falar com todas mquinas sobre Precisamos de um modo de uma mquina
todas as coisas que esto em todas as mquinas; contar para a outra sobre um recurso que pode estar em uma terceira mquina.

O que?

O que?
Sua irm quer o esfrego emprestado; Voc no tem. Mas sua me tem; Voc diz pra sua irm para pegar da sua me.

Como as mquinas conversam?

Como as mquinas conversam?

URL
Se tudo o que a mquina precisa falar tiver uma
URL correspondente, temos o equivalente a um substantivo para as mquinas;

Quando usarmos os mesmos substantivos,


teremos algo bem importante.

Substantivos?
Mquinas no tem um substantivo universal; Toda linguagem de programao, DB etc., tem
um jeito diferente de falar sobre substantivos.

Isso faz a URL importante.


Ela permite que todos sistemas contem uns para
os outros sobre seus substantivos.

Aham, Cludia. Senta l.

Mas e os verbos, pronomes e adjetivos?


Verbos so outro grande especto do REST.

Polimorsmo
Jeito nerd de dizer que o mesmo verbo pode ser
aplicado a diferentes substantivos.

Ahm?

O que podemos fazer com todas essas coisas?

O que podemos fazer com todas essas coisas?

Recuper-las; Peg-las; Bat-las; Queim-las;


Aplicamos os mesmos verbos pra qualquer objeto que esteja l.

Mas e se eu no pudesse falar...


Pegue a jarra; Pegue o prato; Pegue o garfo.
No poderia usar a palavra pegue universalmente. Nova palavra para cada combinao de verbo/substantivo.

Ei, isso seria estranho.

Somos inteligentes.
Verbos podem ser aplicados a diferentes
substantivos;

Alguns so mais especcos; No posso dirigir uma jarra ou beber um garfo; Outros so quase sempre universais, como

recuperar (GET), colocar (PUT) e apagar (DELETE).

HTTP sobre...
APLICAR VERBOS A SUBSTANTIVOS.

Quando voc acessa uma pgina, o navegador


faz uma requisio HTTP GET na URL que voc digitou e devolve uma pgina web.

Parece que GET importante.

Parece que GET importante.


Navegadores, basicamente, s usam GET para
recuperar as coisas; recursos; recursos.

No fazem outros tipos de interao com Nos faz achar que HTTP apenas recuperar

HTTP um protocolo com propsito de aplicar verbos em substantivos.


Ok, mas como isso muda alguma coisa? Que tipos de substantivos e verbos ns precisamos?

Por que uma mquina no pode entender uma pgina web?


Pginas web so planejadas pra serem
entendidas por pessoas;

Mquina no se importam com layout e estilo,


precisam somente de dados; humanos e para mquinas.

Cada URL poderia ter uma representao para

Ento precisamos fazer formatos de mquina para todas as pginas?


Sim, se as pginas tiverem valor.

Exemplo real
Sistema para gerenciar alunos; Em quais matrias esto matriculados, notas,
contatos de emergncia, livros usados, etc.

Existe uma URL para cada substantivo: aluno, professor, aula, livro, sala, etc. Aps uma requisio temos uma pgina web.

Se existir uma representao legvel ao computador para cada URL, seria trivial criar novas ferramentas para o sistema, pois toda informao seria absorvida de um jeito padro.

HTTP GET pra recuperar informao dos outros. Adicionaria usando um HTTP POST. Se precisar atualizar algo, HTTP PUT.

Falta descobrir como esses dados devem ser.

Escrevemos camadas de especicaes complexas para fazer as coisas de um jeito diferente. Trocamos a simplicidade por ferramentas e assistentes chamativos (next, next, nish).

Por que?

Por que?

No fao a mnima idia.

Jefferson Q. Venerando
jefferson@shamanime.com http://shamanime.com @shamanime Bras Sun Research Facility http://bsrf.shamanime.com

6 semestre Sistemas de Informao - Fundao Educacional de Fernandpolis

Você também pode gostar