construção de apis para apps móveis

55
Kleber Bacili [email protected] @kleberbacili Construção de APIs para Apps móveis

Upload: sensedia-company

Post on 22-Jul-2015

356 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Construção de APIs para apps móveis

Kleber  Bacili                [email protected]                                              @kleberbacili  

Construção  de  APIs    para  Apps  móveis  

Page 2: Construção de APIs para apps móveis

www.slideshare.net/kleberbacili/  

Page 3: Construção de APIs para apps móveis

Kleber  Bacili  [email protected]  @kleberbacili  

Page 4: Construção de APIs para apps móveis

v  SOA,  Microservices  e  APIs  

v  Projetos  bacaníssimos  

v  Ferramentas  sensacionais  

v  Headquarter  em  Campinas,    escritórios  em  SP,  Rio  e  EUA  

Page 5: Construção de APIs para apps móveis

Alguns  Clientes  

Page 6: Construção de APIs para apps móveis

App  Economy  

Page 7: Construção de APIs para apps móveis

SSOCIAL  

MMOBILE  

AANALYTICS  

CCLOUD  

Page 8: Construção de APIs para apps móveis

The  Internet  of  Things  

Page 9: Construção de APIs para apps móveis

API First  

APIs  v  MúlAplos  Canais  v  Experiências  e  Telas  diferentes  v  Parceiros  externos  e  Clientes  v  Integrações  OnPremise–Cloud  

Page 10: Construção de APIs para apps móveis

TI  BIMODAL  

Page 11: Construção de APIs para apps móveis

API  Layer  

Backend  

Partners/  Developers  

Users   Apps  

Page 12: Construção de APIs para apps móveis

8 Lições  

Page 13: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 14: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 15: Construção de APIs para apps móveis

Back-­‐end  Devs  Front-­‐end  Devs  

v  RESTful  v Microservices  v  DevOps  v  Containers  v à  DX  

v  Plataformas  NaUvas  v  HTML5  e  Javascript  v  Outros  Devices  (wearables,  IoT)  v  Empresas  parceiras:  Open  APIs  v à  UX  

Page 16: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 17: Construção de APIs para apps móveis
Page 18: Construção de APIs para apps móveis

§  Código  Legado  §  SOAP  Services  §  Tabelas  de  Banco  

Design    ProblemáUco  

A ARMADILHA DA AUTOMATIZAÇÃO

Page 19: Construção de APIs para apps móveis

{ RESTful }

Page 20: Construção de APIs para apps móveis

Coleção  /pedidos!

Resources  Elemento  

/pedidos/{id} !

Page 21: Construção de APIs para apps móveis

/getAccount!/getAllAccounts!/createDirectory!/updateGroupName!/findClientById!

RPC?  

Page 22: Construção de APIs para apps móveis
Page 23: Construção de APIs para apps móveis

GET /vendas/pedidos!

POST /clientes/98W3G32K01/enderecos!{…}  

PUT /clientes/98W3G32K01/enderecos/1 !{…}  

DELETE /users/98W3G32K01/photos !

PATCH /users/98W3G32K01 !{…}  

Page 24: Construção de APIs para apps móveis
Page 25: Construção de APIs para apps móveis

Mais  informações?  

Vídeo  do  Webinar  

hLp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐resQul  

Page 26: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 27: Construção de APIs para apps móveis

THINGS CHANGE!

v1  

v2  v3   v4  

Page 28: Construção de APIs para apps móveis

Versionamento  

Versão  

URI:   https://api.mycompany.com/name-of-api/v2/resource !

HTTP  ou    HTTPS  

Seu  domínio   Nome  da  API  (opcional)  

Recursos  e  Parâmetros  

Page 29: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 30: Construção de APIs para apps móveis

200 !

400 !

500 !

Resultado  OK  

Erro  no  Client  

Erro  no  Server  

Page 31: Construção de APIs para apps móveis

STATUS   OK 200 !

Page 32: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 33: Construção de APIs para apps móveis

v Acesso  não  autorizado  v Ataques  v Privacidade  v  Integridade  v Disponibilidade  

Page 34: Construção de APIs para apps móveis

v Acesso  não  autorizado  v Ataques  v Sobrecarga  v Confidencialidade  v  Implementações    

desastradas  de  clients  

Page 35: Construção de APIs para apps móveis

Básico  

Intermediário  

CríUco  v  Open?  

v  Informações  Sensíveis?  

v  Transações?  

Page 36: Construção de APIs para apps móveis

Usuários   Apps  

Basic  HTTP   OAuth2   OpenID  Connect  

Estratégias  de  AutenUcação  /  Autorização  

App  Token  

Page 37: Construção de APIs para apps móveis
Page 38: Construção de APIs para apps móveis
Page 39: Construção de APIs para apps móveis

Definição  de  Escopo  

Page 40: Construção de APIs para apps móveis
Page 41: Construção de APIs para apps móveis

Revogação    de  Token  

Page 42: Construção de APIs para apps móveis

Client  Apps  

APIs  

Rate  LimiUng  Policy  JSON  Threat  Policy  Payload  Size  Policy  IP  Filtering  Policy  …  

API  Gateway  

Page 43: Construção de APIs para apps móveis

Outras  dicas:      

v  IdenAficadores  UUID  v  Nunca  use  Tokens  na  URL  v  Gerenciamento  de  Apps  

Page 44: Construção de APIs para apps móveis

Os  Fundamentos  da  Segurança  de  APIs  

WEBINAR

hLp://downloads.sensedia.com/webinar-­‐seguranca-­‐de-­‐apis  

Page 45: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 46: Construção de APIs para apps móveis

Caching  Evite  tráfego  desnecessário  

 Latência  de  rede    

 Sobrecarga  nos  servidores  

Pontos  de  Atenção  

v  Local  de  cacheamento  v  Tempo  de  invalidação  do  cache  v  Sincronização  em  clusters  

Page 47: Construção de APIs para apps móveis

Filtros  GET /vendas/v2/pedidos?_status=concluido!

GET /pedidos/123AF15J?_fields=numero,data,valor!

Busca  com  escopo  (subconjuntos):  

Respostas  parciais:  

Page 48: Construção de APIs para apps móveis

Paginação  GET /pedidos?_offset=50&_limit=25 !

Recomendação:  

Outras  opções:  Linkedin:      

 

Instagram:    

?start=50&count=25  

?min_id=3091&max_id=3245&count=25  

Page 49: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 50: Construção de APIs para apps móveis

Compreenda  o  PADRÃO DE USOdas  APPs  e  APIs  

Page 51: Construção de APIs para apps móveis

Faça  o    LOGGINGdetalhado  

Dica:  cuidado  com  o    volume  de  dados  

Page 52: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 53: Construção de APIs para apps móveis

Scaling  the  Ne:lix  API  @  slideshare  

Page 54: Construção de APIs para apps móveis

Equipes

Versões

Monitoração

Segurança Tráfego

RESTful

Erros

Evolução

Page 55: Construção de APIs para apps móveis

Kleber  Bacili                [email protected]                                              @kleberbacili  

Construção  de  APIs    para  Apps  móveis