![Page 1: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/1.jpg)
@wandi [email protected]
![Page 2: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/2.jpg)
296 É O NÚMERO DE VISITAS AOS LOCAIS CADASTRADOS NO
MILHÕES
Sobre APONTADOR
NOS ÚLTIMOS 12 MESES
APONTADOR.COM.BR
DE LOCAIS CADASTRADOS. MILHÕES 7.5 presença em todas as 5.565 cidades do Brasil.
17 MILHÕES DE USUÁRIOS VISITAM APONTADOR.COM.BR TODO MÊS.
3MILHÕES
DE OPINIÕES SOBRE LOCAIS SÃO COMPARTILHADAS ENTRE OS USUÁRIOS.
13 MILHÕES
DE TELEFONES COMERCIAS SÃO ENCONTRADOS NO APONTADOR.
1 em cada 5 brasileiros acessam Apontador
procurando por locais ou serviços.
![Page 3: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/3.jpg)
• Uma$auten)cação$que$funcione$
– E$que$funcione$também$no$celular$
• Flexibilidade$para$o$)me$de$negócios$
• Velocidade$na$entrega$de$novas$funcionalidades$
• Velocidade$no$tempo$de$resposta$
• Maior$compa)bilidade$com$REST$
• Design$for$Opera)ons$• Ahhh$e$que$seja$fácil$de$usar$
A missão da nova API (V2)
![Page 4: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/4.jpg)
• Rever$o$Modelo&de&Domínio&• Modelo$Flexível:$Novos&Endpoints&• Segurança:$OAuth2&• Uso$de$Frameworks&• Performance:$Escrita$Assíncrona$e$Caching$• Melhores&prá@cas&REST$• Design$for$Opera)ons:$Self&Tests&• Console$de$desenvolvimento:$API&Playground&
//COMOFAZ?
![Page 5: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/5.jpg)
• Defina$o$modelo&de&domínio&– Não$dá$para$começar$sem$isso$
– Conheça$sua$empresa$(e$as$outras…)$
– Oportunidades$para$melhorar$
• Hipermídia&– Como$os$objetos$de$domínio$se$relacionam?$
• Definir$endpoints$– Cuidado$com$verbos$(REST$como$RPC)$
– Os$endpoints$são$o$limite&do&@me&de&negócio&
Começando com REST
![Page 6: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/6.jpg)
Apontador API-V2
![Page 7: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/7.jpg)
OAUTH2
• Evolução$do$protocolo$OAUTH$1$(2007)$• Simplicidade:$Novos$Fluxos$
• Adeus$compa)bilidade,$novo$protocolo$
• Tudo$HTTPS$• Homens$Trabalhando:$DraY$31$
![Page 8: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/8.jpg)
OAUTH2: Como vendi a idéia
• MicrosoY,$Google,$Facebook,$Foursquare$
• Um$fluxo$para$celulares$
• Login$em$aplicações$na)vas$
• //FIXME$correção$da$implementação$anterior$
• SIMPLICIDADE$
curl$cX$POST$cd$
"client_id=QConSP2013&client_secret=PJHh01pWG1sbcq43vsOgAiXtA2C~&grant_type=client_creden)als"$hips://api.apontador.com.br/v2/oauth/token$
curl$cX$GET$cH$"Accept:$applica)on/json"$cH$"Authoriza)on:$Bearer$
2ab795caX71bcX45bbX8e48X40aa335a816d"$hips://api.apontador.com.br/v2/
places?q=pizzaria$
![Page 9: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/9.jpg)
OAUTH2
![Page 10: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/10.jpg)
OAUTH2
hips://api.apontador.com.br/v2/oauth/authorize?
client_id=QConSP2013&redirect_uri=hip://seuhost/
&scope=read&response_type=code$
hip://seuhost/?code=ufXpQ8$
curl$hips://api.apontador.com.br/v2/oauth/token$cd$
"code=ufXpQ8&client_id=QConSP2013&client_secret=PJHh01pWG1sbcq43vsOgAiXtA2C~&redirect_uri=hip://
seuhost/&grant_type=authoriza)on_code"$
![Page 11: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/11.jpg)
Apontador REST API-V2
URI$Design$ $$
Plural$para$coleções$ /places$
Iden)ficação$ /places/M25GJ288$
Associações$ /places/M25GJ288/reviews$
HTTP$ GET$PUT$POST$DELETE$
Conteúdo$ JSON$/$XML$
Paginação$ ?start=10&rows=10$
Busca$livre$ /places?q=pizzaria$
Conteúdo$parcial$ /places?q=pizzaria&fl=name,phones$
Verbos?$ /users/6715779712/resetPassword$
camelCase$ createdAt$
Versionamento$ hips://api.apontador.com.br/v2/places$
![Page 12: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/12.jpg)
APIGEE console
![Page 13: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/13.jpg)
Apontador API-V2
STATUS$ $$
200$OK$
201$Created$
202$Accepted$
204$No$Content$
301$Moved$Permanently$
400$Bad$Request$
401$Unauthorized$
402$Payment$Required$
403$Forbidden$
404$Not$Found$
405$Method$Not$Allowed$
409$Conflict$
410$Gone$
413$Request$En)ty$Too$Large$
420$Enhance$your$calm$
429$Too$Many$Requests$
500$Internal$Server$Error$
503$Service$Unavailable$
![Page 14: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/14.jpg)
Arquitetura e Frameworks
Linguagens$ Storage$ Frameworks$ Outros$
Java$ Oracle$ Spring$ Nginx$
Redis$ Tomcat$
Ac)veMQ$
Solr$
![Page 15: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/15.jpg)
Spring
![Page 16: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/16.jpg)
Aspectos: Perf4J + Splunk
![Page 17: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/17.jpg)
Spring
![Page 18: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/18.jpg)
REDIS
• Cache$Chave=Valor$• Escrita$/$Leitura$separados$• Resiliência$e$Performance$
• Ranking$• Armazenamento$temporário$
![Page 19: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/19.jpg)
Monitoração
![Page 20: Apontador.com: A experiência da migração para uma plataforma REST](https://reader034.vdocuments.com.br/reader034/viewer/2022052413/559d28fe1a28abe8518b46f1/html5/thumbnails/20.jpg)
Monitoração