Your SlideShare is downloading. ×
0
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
REST: Faça o Serviço Direito
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

REST: Faça o Serviço Direito

2,771

Published on

Acompanhe o projeto, modelagem, conceitos e ferramentas para o desenvolvimento de um sistema RESTful completo.

Acompanhe o projeto, modelagem, conceitos e ferramentas para o desenvolvimento de um sistema RESTful completo.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,771
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
31
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. REST: Faça o Serviço Direito3 de Novembro PHP Conference 2011 1
  • 2. Alexandre Gomes Gaigalashttp://about.me/alganet3 de Novembro PHP Conference 2011 2
  • 3. Hoje você vai ver... ● Conceito: Por quê usar REST? ● Projeto: REST desde o berço ● Implementação: Ferramentas e técnicas3 de Novembro PHP Conference 2011 3
  • 4. REST não é apenas para APIs.3 de Novembro PHP Conference 2011 4
  • 5. 3 de Novembro PHP Conference 2011 5
  • 6. Roy Fielding3 de Novembro PHP Conference 2011 6
  • 7. ArquiteturaComo você organiza elementos de software para alcançar certos objetivos.3 de Novembro PHP Conference 2011 7
  • 8. Arquitetura Dados, componentes e conectoresComo você organiza elementos de software para alcançar certos objetivos.3 de Novembro PHP Conference 2011 8
  • 9. Arquitetura Dados, componentes e conectoresComo você organiza elementos de software para alcançar certos objetivos. Performance, escalabilidade, simplicidade, extensibilidade3 de Novembro PHP Conference 2011 9
  • 10. Arquitetura Dados, componentes e conectoresComo você organiza elementos de software para alcançar certos objetivos. Performance, escalabilidade, simplicidade, extensibilidade Estilo Arquitetural Como você alcança certos objetivos com determinadas regras de organização dos elementos de software.3 de Novembro PHP Conference 2011 10
  • 11. Arquitetura Dados, componentes e conectoresComo você organiza elementos de software para alcançar certos objetivos. Performance, escalabilidade, simplicidade, extensibilidade Estilo Arquitetural REST Como você alcança certos objetivos com determinadas regras de organização dos elementos de software.3 de Novembro PHP Conference 2011 11
  • 12. Regra 1: Cliente-Servidor ● Portabilidade ● Escalabilidade ●3 de Novembro PHP Conference 2011 12
  • 13. Regra 1: Cliente-Servidor Desktop, Mobile, API, etc. ● Portabilidade ● Escalabilidade ●3 de Novembro PHP Conference 2011 13
  • 14. Regra 1: Cliente-Servidor Desktop, Mobile, API, etc. ● PortabilidadeMúltiplos servidores e clientes ● Escalabilidade ●3 de Novembro PHP Conference 2011 14
  • 15. Regra 1: Cliente-Servidor Desktop, Mobile, API, etc. ● PortabilidadeMúltiplos servidores e clientes ● Escalabilidade http://futurefriend.ly ●3 de Novembro PHP Conference 2011 15
  • 16. Ferramentas Cliente-Servidor ● Apache HTTP Server ● nginx ● curl ● Zend_Http_Client ● github.com/educoder/pest ● ...3 de Novembro PHP Conference 2011 16
  • 17. Nosso Projeto Imaginário ● Instalação em 10 servidores. ● API, Mobile, Desktop.3 de Novembro PHP Conference 2011 17
  • 18. Regra 2: Sem Estado ● Visibilidade ● Confiabilidade ● Escalabilidade3 de Novembro PHP Conference 2011 18
  • 19. Regra 2: Sem Estado Monitoramento, estatísticas ● Visibilidade ● Confiabilidade ● Escalabilidade3 de Novembro PHP Conference 2011 19
  • 20. Regra 2: Sem Estado Monitoramento, estatísticas ● VisibilidadeRecuperação de falhas simplificada ● Confiabilidade ● Escalabilidade 3 de Novembro PHP Conference 2011 20
  • 21. Regra 2: Sem Estado Monitoramento, estatísticas ● VisibilidadeRecuperação de falhas simplificada ● Confiabilidade Cache, balanceamento de carga ● Escalabilidade 3 de Novembro PHP Conference 2011 21
  • 22. Nosso Projeto Imaginário ● Instalação em 10 servidores. ● API, Mobile, Desktop. ● Autenticação via Digest/OAuth. ● Página auxiliar para navegadores.3 de Novembro PHP Conference 2011 22
  • 23. Regra 3: Cache ● Eficiência ● Performance ● Escalabilidade3 de Novembro PHP Conference 2011 23
  • 24. Regra 3: Cache Menos requisições ● Eficiência ● Performance ● Escalabilidade3 de Novembro PHP Conference 2011 24
  • 25. Regra 3: Cache Menos requisições ● Eficiência Menor latência para o cliente ● Performance ● Escalabilidade3 de Novembro PHP Conference 2011 25
  • 26. Regra 3: Cache Menos requisições ● Eficiência Menor latência para o cliente ● PerformanceCache, balanceamento de carga ● Escalabilidade3 de Novembro PHP Conference 2011 26
  • 27. Ferramentas para Cache ● nginx ● Varnish Cache ● Apache mod_cache ● yslow pra testar3 de Novembro PHP Conference 2011 27
  • 28. Nosso Projeto Imaginário ● Instalação em 10 servidores. ● API, Mobile, Desktop. ● Autenticação via Digest/OAuth. ● Página auxiliar para navegadores. ● Headers para cache.3 de Novembro PHP Conference 2011 28
  • 29. Regra 4: Interface Uniforme ● Identificação de Recursos URIs ● Manipulação de Representações HTML, JPG, etc ● Mensagens auto-descritivas text/html, image/jpg ● Hipermídia Links3 de Novembro PHP Conference 2011 29
  • 30. URI ● Identificação universal de recursos3 de Novembro PHP Conference 2011 30
  • 31. URI ● Identificação universal de recursos ● Desacoplada da representação3 de Novembro PHP Conference 2011 31
  • 32. URI ● Identificação universal de recursos ● Desacoplada da representação ● Vários esquemas de identificação ● http://dominio.com/path?query=123#hash ● ftp://user@server.net/path/arquivo.txt ● mailto:alexandre@gaigalas.net ● …3 de Novembro PHP Conference 2011 32
  • 33. URI ● Identificação universal de recursos ● Desacoplada da representação ● Vários esquemas de identificação ● http://dominio.com/path?query=123#hash ● ftp://user@server.net/path/arquivo.txt ● mailto:alexandre@gaigalas.net ● … ● URIs legais não mudam =D3 de Novembro PHP Conference 2011 33
  • 34. http://social.yahooapis.com/v1/user/12345/profile3 de Novembro PHP Conference 2011 34
  • 35. http://social.yahooapis.com/v1/user/12345/profile Schema Domain Path3 de Novembro PHP Conference 2011 35
  • 36. http://social.yahooapis.com/v1/user/12345/profile Schema Domain Path ● Representa um perfil3 de Novembro PHP Conference 2011 36
  • 37. http://social.yahooapis.com/v1/user/12345/profile Schema Domain Path ● Representa um perfil ● Desacoplado do formato de resposta ● Compreende negociação de conteúdo3 de Novembro PHP Conference 2011 37
  • 38. 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 perfil3 de Novembro PHP Conference 2011 38
  • 39. REST em JSON é quase impossível.3 de Novembro PHP Conference 2011 39
  • 40. Hipermídia Identificação absoluta ● href=”http://example.org/foobar” Identificação relativa ao domínio ● href=”/foobar” Identificação relativa ao esquema ● href=”//example.org/foobar”3 de Novembro PHP Conference 2011 40
  • 41. Regra 5: CamadasImplementação independente ● Simplicidade Firewalls, segurança, proxies ● ExtensibilidadeCache, balanceamento de carga ● Escalabilidade3 de Novembro PHP Conference 2011 41
  • 42. Nosso Projeto Imaginário ● 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.3 de Novembro PHP Conference 2011 42
  • 43. Regra 5: Camadas ● Simplicidade ● Extensibilidade ● Escalabilidade3 de Novembro PHP Conference 2011 43
  • 44. Regra 5: CamadasImplementação independente ● Simplicidade ● Extensibilidade ● Escalabilidade3 de Novembro PHP Conference 2011 44
  • 45. Regra 5: CamadasImplementação independente ● Simplicidade Firewalls, segurança, proxies ● Extensibilidade ● Escalabilidade3 de Novembro PHP Conference 2011 45
  • 46. Nosso Projeto Imaginário ● 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.3 de Novembro PHP Conference 2011 46
  • 47. Regra Dica 6: Código sob Demanda ● CSS ● Javascript3 de Novembro PHP Conference 2011 47
  • 48. Regra Dica 6: Código sob Demanda ● CSS Apresentação ● Javascript Comportamento3 de Novembro PHP Conference 2011 48
  • 49. Regra Dica 6: Código sob Demanda ● CSS Apresentação ● Estilos ● Media queries ● ... ● Javascript Comportamento3 de Novembro PHP Conference 2011 49
  • 50. Regra Dica 6: Código sob Demanda ● CSS Apresentação ● Estilos ● Media queries ● ... ● Javascript Comportamento ● AJAX ● Feature Detection ● ...3 de Novembro PHP Conference 2011 50
  • 51. Responsivo é RESTful Desktop Mobile3 de Novembro PHP Conference 2011 51
  • 52. Ferramentas pra Código sob Demanda ● Modernizr (http://modernizr.com) ● Frameless (http://framelessgrid.com)3 de Novembro PHP Conference 2011 52
  • 53. Nosso Projeto Imaginário ● 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 demanda3 de Novembro PHP Conference 2011 53
  • 54. Hoje você viu... ● Conceito: Por quê usar REST? ● Projeto: REST desde o berço ● Implementação: Ferramentas e técnicas3 de Novembro PHP Conference 2011 54
  • 55. Perguntas?3 de Novembro PHP Conference 2011 55
  • 56. Obrigado!http://joind.in/44733 de Novembro PHP Conference 2011 56

×