rest: faça o serviço direito - tdc goiânia
TRANSCRIPT
![Page 1: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/1.jpg)
30 de Outubro The Developers Conference 2011 1
REST: Faça o Serviço Direito
![Page 2: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/2.jpg)
30 de Outubro The Developers Conference 2011 2
REST: Faça o Serviço Direitobeta
![Page 3: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/3.jpg)
30 de Outubro The Developers Conference 2011 3
Alexandre Gomes Gaigalas
http://about.me/alganet
![Page 4: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/4.jpg)
30 de Outubro The Developers Conference 2011 4
Hoje você vai ver...
● Conceito: Por quê usar REST?
● Projeto: REST desde o berço
● Implementação: Ferramentas e técnicas
![Page 5: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/5.jpg)
30 de Outubro The Developers Conference 2011 5
REST não é apenas para APIs.
![Page 6: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/6.jpg)
30 de Outubro The Developers Conference 2011 6
![Page 7: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/7.jpg)
30 de Outubro The Developers Conference 2011 7
Roy Fielding
![Page 8: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/8.jpg)
30 de Outubro The Developers Conference 2011 8
Arquitetura
Como você organiza elementos de software para alcançar certos objetivos.
![Page 9: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/9.jpg)
30 de Outubro The Developers Conference 2011 9
Arquitetura
Como você organiza elementos de software para alcançar certos objetivos.
Dados, componentes e conectores
![Page 10: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/10.jpg)
30 de Outubro The Developers Conference 2011 10
Arquitetura
Como você organiza elementos de software para alcançar certos objetivos.
Performance, escalabilidade, simplicidade, extensibilidade
Dados, componentes e conectores
![Page 11: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/11.jpg)
30 de Outubro The Developers Conference 2011 11
Arquitetura
Como você organiza elementos de software para alcançar certos objetivos.
Dados, componentes e conectores
Estilo ArquiteturalComo você alcança certos objetivos com
determinadas regras de organização dos elementos de software.
Performance, escalabilidade, simplicidade, extensibilidade
![Page 12: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/12.jpg)
30 de Outubro The Developers Conference 2011 12
Arquitetura
Como você organiza elementos de software para alcançar certos objetivos.
REST
Dados, componentes e conectores
Estilo ArquiteturalComo você alcança certos objetivos com
determinadas regras de organização dos elementos de software.
Performance, escalabilidade, simplicidade, extensibilidade
![Page 13: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/13.jpg)
30 de Outubro The Developers Conference 2011 13
Regra 1: Cliente-Servidor
● Portabilidade
● Escalabilidade
●
![Page 14: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/14.jpg)
30 de Outubro The Developers Conference 2011 14
Regra 1: Cliente-Servidor
● Portabilidade
● Escalabilidade
●
Desktop, Mobile, API, etc.
![Page 15: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/15.jpg)
30 de Outubro The Developers Conference 2011 15
Regra 1: Cliente-Servidor
● Portabilidade
● Escalabilidade
●
Múltiplos servidores e clientes
Desktop, Mobile, API, etc.
![Page 16: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/16.jpg)
30 de Outubro The Developers Conference 2011 16
Regra 1: Cliente-Servidor
● Portabilidade
● Escalabilidade
●
http://futurefriend.ly
Múltiplos servidores e clientes
Desktop, Mobile, API, etc.
![Page 17: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/17.jpg)
30 de Outubro The Developers Conference 2011 17
Ferramentas Cliente-Servidor
● Apache HTTP Server● nginx ● curl ● Zend_Http_Client● github.com/educoder/pest● ...
![Page 18: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/18.jpg)
30 de Outubro The Developers Conference 2011 18
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.
![Page 19: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/19.jpg)
30 de Outubro The Developers Conference 2011 19
Regra 2: Sem Estado
![Page 20: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/20.jpg)
30 de Outubro The Developers Conference 2011 20
Regra 2: Sem Estado
● Visibilidade
● Confiabilidade
● Escalabilidade
![Page 21: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/21.jpg)
30 de Outubro The Developers Conference 2011 21
Regra 2: Sem Estado
● Visibilidade
● Confiabilidade
● Escalabilidade
Monitoramento, estatísticas
![Page 22: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/22.jpg)
30 de Outubro The Developers Conference 2011 22
Regra 2: Sem Estado
● Visibilidade
● Confiabilidade
● Escalabilidade
Recuperação de falhas simplificada
Monitoramento, estatísticas
![Page 23: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/23.jpg)
30 de Outubro The Developers Conference 2011 23
Regra 2: Sem Estado
● Visibilidade
● Confiabilidade
● Escalabilidade
Recuperação de falhas simplificada
Monitoramento, estatísticas
Cache, balanceamento de carga
![Page 24: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/24.jpg)
30 de Outubro The Developers Conference 2011 24
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.● Autenticação via Digest/OAuth.
● Página auxiliar para navegadores.
![Page 25: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/25.jpg)
30 de Outubro The Developers Conference 2011 25
Regra 3: Cache
● Eficiência
● Performance
● Escalabilidade
![Page 26: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/26.jpg)
30 de Outubro The Developers Conference 2011 26
Regra 3: Cache
● Eficiência
● Performance
● Escalabilidade
Menos requisições
![Page 27: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/27.jpg)
30 de Outubro The Developers Conference 2011 27
Regra 3: Cache
● Eficiência
● Performance
● Escalabilidade
Menor latência para o cliente
Menos requisições
![Page 28: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/28.jpg)
30 de Outubro The Developers Conference 2011 28
Regra 3: Cache
● Eficiência
● Performance
● Escalabilidade
Menor latência para o cliente
Menos requisições
Cache, balanceamento de carga
![Page 29: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/29.jpg)
30 de Outubro The Developers Conference 2011 29
Ferramentas para Cache
● nginx ● Varnish Cache● Apache mod_cache● yslow pra testar
![Page 30: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/30.jpg)
30 de Outubro The Developers Conference 2011 30
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.● Autenticação via Digest/OAuth.
● Página auxiliar para navegadores.● Headers para cache.
![Page 31: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/31.jpg)
30 de Outubro The Developers Conference 2011 31
Regra 4: Interface Uniforme
● Identificação de Recursos
● Manipulação de Representações
● Mensagens auto-descritivas
● Hipermídia
URIs
HTML, JPG, etc
text/html, image/jpg
Links
![Page 32: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/32.jpg)
21 de Agosto The Developers Conference 2011 32
URI
● Identificação universal de recursos
![Page 33: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/33.jpg)
21 de Agosto The Developers Conference 2011 33
URI
● Identificação universal de recursos● Desacoplada da representação
![Page 34: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/34.jpg)
21 de Agosto The Developers Conference 2011 34
URI
● Identificação universal de recursos● Desacoplada da representação● Vários esquemas de identificação
● http://dominio.com/path?query=123#hash ● ftp://[email protected]/path/arquivo.txt● mailto:[email protected] ● …
![Page 35: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/35.jpg)
21 de Agosto The Developers Conference 2011 35
URI
● Identificação universal de recursos● Desacoplada da representação● Vários esquemas de identificação
● http://dominio.com/path?query=123#hash ● ftp://[email protected]/path/arquivo.txt● mailto:[email protected] ● …
● URIs legais não mudam =D
![Page 36: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/36.jpg)
21 de Agosto The Developers Conference 2011 36
http://social.yahooapis.com/v1/user/12345/profile
![Page 37: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/37.jpg)
21 de Agosto The Developers Conference 2011 37
http://social.yahooapis.com/v1/user/12345/profile
Schema Domain Path
![Page 38: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/38.jpg)
21 de Agosto The Developers Conference 2011 38
http://social.yahooapis.com/v1/user/12345/profile
Schema Domain Path
● Representa um perfil
![Page 39: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/39.jpg)
21 de Agosto The Developers Conference 2011 39
http://social.yahooapis.com/v1/user/12345/profile
Schema Domain Path
● Representa um perfil● Desacoplado do formato de resposta
● Compreende negociação de conteúdo
![Page 40: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/40.jpg)
21 de Agosto The Developers Conference 2011 40
http://social.yahooapis.com/v1/user/12345/profile
Schema Domain Path
● Representa um perfil● Desacoplado do formato de resposta
● Compreende negociação de conteúdo● Abstrai um recurso
● Aceita GET para obter perfil● Aceita POST para atualizar perfil
![Page 41: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/41.jpg)
30 de Outubro The Developers Conference 2011 41
REST em JSON é quase impossível.
![Page 42: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/42.jpg)
30 de Outubro The Developers Conference 2011 42
Hipermídia
● href=”http://example.org/foobar”
● href=”/foobar”
● href=”//example.org/foobar”
Identificação absoluta
Identificação relativa ao domínio
Identificação relativa ao esquema
![Page 43: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/43.jpg)
30 de Outubro The Developers Conference 2011 43
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.● Autenticação via Digest/OAuth.
● Página auxiliar para navegadores.● Headers para cache.● Hipermídia HTML e XML.
![Page 44: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/44.jpg)
30 de Outubro The Developers Conference 2011 44
Regra 5: Camadas
● Simplicidade
● Extensibilidade
● Escalabilidade
![Page 45: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/45.jpg)
30 de Outubro The Developers Conference 2011 45
Regra 5: Camadas
● Simplicidade
● Extensibilidade
● Escalabilidade
Implementação independente
![Page 46: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/46.jpg)
30 de Outubro The Developers Conference 2011 46
Regra 5: Camadas
● Simplicidade
● Extensibilidade
● Escalabilidade
Firewalls, segurança, proxies
Implementação independente
![Page 47: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/47.jpg)
30 de Outubro The Developers Conference 2011 47
Regra 5: Camadas
● Simplicidade
● Extensibilidade
● Escalabilidade
Firewalls, segurança, proxies
Implementação independente
Cache, balanceamento de carga
![Page 48: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/48.jpg)
30 de Outubro The Developers Conference 2011 48
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.● Autenticação via Digest/OAuth.
● Página auxiliar para navegadores.● Proxy-reverso e headers para cache.● Hipermídia HTML e XML.
![Page 49: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/49.jpg)
30 de Outubro The Developers Conference 2011 49
Regra Dica 6: Código sob Demanda
● CSS
● Javascript
![Page 50: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/50.jpg)
30 de Outubro The Developers Conference 2011 50
Regra Dica 6: Código sob Demanda
● CSS
● JavascriptComportamento
Apresentação
![Page 51: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/51.jpg)
30 de Outubro The Developers Conference 2011 51
Regra Dica 6: Código sob Demanda
● CSS● Estilos● Media queries● ...
● JavascriptComportamento
Apresentação
![Page 52: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/52.jpg)
30 de Outubro The Developers Conference 2011 52
Regra Dica 6: Código sob Demanda
● CSS● Estilos● Media queries● ...
● Javascript● AJAX● Feature Detection● ...
Comportamento
Apresentação
![Page 53: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/53.jpg)
30 de Outubro The Developers Conference 2011 53
Ferramentas pra Código sob Demanda
● Modernizr (http://modernizr.com)
● Frameless (http://framelessgrid.com)
![Page 54: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/54.jpg)
30 de Outubro The Developers Conference 2011 54
Nosso Projeto
● Instalação em 10 servidores.● API, Mobile, Desktop.● Autenticação via Digest/OAuth.
● Página auxiliar para navegadores.● Proxy-reverso e headers para cache.● Hipermídia HTML e XML.● Versão Mobile/Desktop via Javascript sob
demanda
![Page 55: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/55.jpg)
30 de Outubro The Developers Conference 2011 55
Hoje você viu...
● Conceito: Por quê usar REST?
● Projeto: REST desde o berço
● Implementação: Ferramentas e técnicas
![Page 56: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/56.jpg)
30 de Outubro The Developers Conference 2011 56
Perguntas?
![Page 57: REST: Faça o Serviço Direito - TDC Goiânia](https://reader034.vdocuments.com.br/reader034/viewer/2022042717/55d57d41bb61ebf8738b45b9/html5/thumbnails/57.jpg)
30 de Outubro The Developers Conference 2011 57
Obrigado!