57
30 de Outubro The Developers Conference 2011 1 REST: Faça o Serviço Direito

REST: Faça o Serviço Direito - TDC Goiânia

Embed Size (px)

Citation preview

Page 1: REST: Faça o Serviço Direito - TDC Goiânia

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

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

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

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

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

30 de Outubro The Developers Conference 2011 6

Page 7: REST: Faça o Serviço Direito - TDC Goiânia

30 de Outubro The Developers Conference 2011 7

Roy Fielding

Page 8: REST: Faça o Serviço Direito - TDC Goiânia

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

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

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

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

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

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

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

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

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

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

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

30 de Outubro The Developers Conference 2011 19

Regra 2: Sem Estado

Page 20: REST: Faça o Serviço Direito - TDC Goiânia

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 de Outubro The Developers Conference 2011 56

Perguntas?

Page 57: REST: Faça o Serviço Direito - TDC Goiânia

30 de Outubro The Developers Conference 2011 57

Obrigado!