• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Rest pra minha namorada

on

  • 990 views

Lightning talk sobre REST na FEF realizado em 18/11/2010.

Lightning talk sobre REST na FEF realizado em 18/11/2010.

Statistics

Views

Total Views
990
Views on SlideShare
975
Embed Views
15

Actions

Likes
1
Downloads
6
Comments
0

4 Embeds 15

http://localhost:4000 11
http://www.linkedin.com 2
http://beta.shamani.me 1
http://shamani.me 1

Accessibility

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Rest pra minha namorada Rest pra minha namorada Presentation Transcript

  • 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 especificação do protocolo usado para transferir páginas dos servidores para os navegadores.
  • Como a web funciona HTTP •Informa ao navegador qual protocolo utilizar; •Uma das mais importantes descobertas da história da computação; •Descreve a localização de algo em qualquer lugar do mundo para qualquer lugar do mundo; •GPS para informações e conhecimento.
  • Para páginas web? Para qualquer coisa. A web é construída sobre um estilo arquitetural chamado: REST
  • REST Representational State Transfer REST tem uma definição de “recurso”, que é o que o HTTP referencia. Página web é um recurso?
  • Página web é um recurso? •Uma página web é uma “representação” de um recurso. Recursos são apenas conceitos; •A URL diz ao navegador que existe um conceito em algum lugar; •O navegador requisita uma representação específica daquele conceito.
  • Existem outros tipos de representação? •Representações não são muito usadas =( •A maioria dos recursos têm apenas uma representação; •Esperamos que representações sejam mais usadas no futuro, já que um monte de novos formatos estão surgindo. Como quais?
  • Como quais? “Web Service” •Significa um monte de coisa diferente pra um monte de gente diferente; •As máquinas podem usar a web da mesma maneira que as pessoas.
  • Isso é coisa de robô? Computadores podem usar os mesmos protocolos para enviar mensagens uns para os outros. •Nós fazemos isso há bastante tempo; •Nenhuma técnica que usamos hoje funciona bem quando é necessário falar com todas as máquinas de todo o mundo.
  • Por que não? •Na época de Fielding, falar com qualquer máquina em qualquer lugar era de suma importância; •A maioria das técnicas que usamos não tem esses requisitos; •Precisam falar apenas com pequenos grupos de máquinas.
  • E agora? •Precisamos falar com todas máquinas sobre todas as coisas que estão em todas as máquinas; •Precisamos de um modo de uma máquina contar para a outra sobre um recurso que pode estar em uma terceira máquina.
  • O que?
  • O que? •Sua irmã quer o esfregão emprestado; •Você não tem. Mas sua mãe tem; •Você diz pra sua irmã para pegar da sua mãe. Como as máquinas conversam?
  • Como as máquinas conversam? URL •Se tudo o que a máquina precisa falar tiver uma URL correspondente, temos o equivalente a um substantivo para as máquinas; •Quando usarmos os mesmos substantivos, teremos algo bem importante.
  • Substantivos? •Máquinas não tem um substantivo universal; •Toda linguagem de programação, 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, Cláudia. Senta lá.
  • Mas e os verbos, pronomes e adjetivos? Verbos são outro grande especto do REST.
  • Polimorfismo •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 não pudesse falar... •Pegue a jarra; •Pegue o prato; •Pegue o garfo. Não poderia usar a palavra “pegue” universalmente. Nova palavra para cada combinação de verbo/substantivo.
  • Ei, isso seria estranho.
  • Somos inteligentes. •Verbos podem ser aplicados a diferentes substantivos; •Alguns são mais específicos; •Não posso dirigir uma jarra ou beber um garfo; •Outros são quase sempre universais, como recuperar (GET), colocar (PUT) e apagar (DELETE).
  • HTTP é sobre... APLICAR VERBOS A SUBSTANTIVOS. •Quando você acessa uma página, o navegador faz uma requisição HTTP GET na URL que você digitou e devolve uma página web.
  • Parece que GET é importante.
  • Parece que GET é importante. •Navegadores, basicamente, só usam GET para recuperar as coisas; •Não fazem outros tipos de interação com recursos; •Nos faz achar que HTTP é apenas recuperar recursos.
  • HTTP é um protocolo com propósito de aplicar verbos em substantivos. Ok, mas como isso muda alguma coisa? Que tipos de substantivos e verbos nós precisamos?
  • Por que uma máquina não pode entender uma página web? •Páginas web são planejadas pra serem entendidas por pessoas; •Máquina não se importam com layout e estilo, precisam somente de dados; •Cada URL poderia ter uma representação para humanos e para máquinas.
  • Então precisamos fazer formatos de máquina para todas as páginas? Sim, se as páginas tiverem valor.
  • Exemplo real •Sistema para gerenciar alunos; •Em quais matérias estão matriculados, notas, contatos de emergência, livros usados, etc. Existe uma URL para cada substantivo: aluno, professor, aula, livro, sala, etc. Após uma requisição temos uma página web.
  • Se existir uma representação legível ao computador para cada URL, seria trivial criar novas ferramentas para o sistema, pois toda informação seria absorvida de um jeito padrão.
  • HTTP GET pra recuperar informação dos outros. Adicionaria usando um HTTP POST. Se precisar atualizar algo, HTTP PUT.
  • Falta descobrir como esses dados devem ser.
  • Escrevemos camadas de especificações complexas para fazer as coisas de um jeito diferente. Trocamos a simplicidade por ferramentas e assistentes chamativos (next, next, finish).
  • Por que?
  • Por que? Não faço a mínima idéia.
  • Jefferson Q. Venerando jefferson@shamanime.com http://shamanime.com @shamanime Bras Sun Research Facility http://bsrf.shamanime.com 6º semestre Sistemas de Informação - Fundação Educacional de Fernandópolis