design de apis restful seguras e escaláveis

62
Kleber Bacili [email protected] @kleberbacili Design de APIs RESTful – Seguras, Escaláveis e Interoperáveis –

Upload: kleber-bacili

Post on 17-Jul-2015

221 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Design de APIs RESTful Seguras e Escaláveis

Kleber  Bacili  [email protected]  @kleberbacili  

Design  de  APIs  RESTful    –  Seguras,  Escaláveis  e  Interoperáveis  –  

Page 2: Design de APIs RESTful Seguras e Escaláveis

www.slideshare.net/kleberbacili/  

Page 3: Design de APIs RESTful Seguras e Escaláveis

Kleber  Bacili  [email protected]  @kleberbacili  

Cerquilho  

Page 4: Design de APIs RESTful Seguras e Escaláveis

v  Design,  Exposição,  Gerenciamento    e  Engajamento  em  APIs  

v  Headquarter  em  Campinas,    escritórios  em  Sampa,  Rio  e  Philly  

v  Classificados  como  Visionários  no  Quadrante  Mágico  do  Gartner  

(*)    Magic  Quadrant  for  Integrated  SOA  Governance  Technology  Sets,  2009  

Page 5: Design de APIs RESTful Seguras e Escaláveis

As  APIs  estão  por    toda  parte…  

Page 6: Design de APIs RESTful Seguras e Escaláveis

Fonte:  ProgrammableWeb  

Clube  dos  Bilhões  5+  Bilhões  de  Calls/Dia  1+  Bilhões  de  Calls/Dia  

Page 7: Design de APIs RESTful Seguras e Escaláveis

Startup  BaKlefield  

78%  

Page 8: Design de APIs RESTful Seguras e Escaláveis

The  Internet  of  Things  

Page 9: Design de APIs RESTful Seguras e Escaláveis

Open  Banking?  

Page 10: Design de APIs RESTful Seguras e Escaláveis
Page 11: Design de APIs RESTful Seguras e Escaláveis

²  Eu  ainda  não  tenho  API…..  ²  Eu  nem  sei  como  fazer  uma  API…..  

²  E  a  segurança…..  

Page 12: Design de APIs RESTful Seguras e Escaláveis

10 Dicas  para  a  sua  API  

ser  um  sucesso  

Page 13: Design de APIs RESTful Seguras e Escaláveis

Dica  Zero!  

Page 14: Design de APIs RESTful Seguras e Escaláveis

Selecione  a  Tecnologia  Adequada  

REST SOAP vs.

Page 15: Design de APIs RESTful Seguras e Escaláveis

Selecione  a  Tecnologia  Adequada  

JSON XML vs.

Page 16: Design de APIs RESTful Seguras e Escaláveis

and the winners are…

REST + JSON

Page 17: Design de APIs RESTful Seguras e Escaláveis

1 Proposta  de  Valor  

Page 18: Design de APIs RESTful Seguras e Escaláveis

“Você  pode  até  passar  batom  num  porco,  mas  ele  conZnuará  sendo  um  porco!”  

Page 19: Design de APIs RESTful Seguras e Escaláveis

2 Design  RESTful  

Page 20: Design de APIs RESTful Seguras e Escaláveis

Coleção  /pedidos!

Resources  Elemento  

/pedidos/{id} !

Page 21: Design de APIs RESTful Seguras e Escaláveis

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

RPC?  

Page 22: Design de APIs RESTful Seguras e Escaláveis

VERBOS  

Page 23: Design de APIs RESTful Seguras e Escaláveis

GET /vendas/pedidos!

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

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

DELETE /users/98W3G32K01/photos !

PATCH /users/98W3G32K01 !{…}  

Page 24: Design de APIs RESTful Seguras e Escaláveis
Page 25: Design de APIs RESTful Seguras e Escaláveis

3 Versionamento  

Page 26: Design de APIs RESTful Seguras e Escaláveis

v1   v2   v3   v4   v5   v6   v7  

THINGS  CHANGE!  

Page 27: Design de APIs RESTful Seguras e Escalá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 28: Design de APIs RESTful Seguras e Escaláveis

4 Error  Handling  

Page 29: Design de APIs RESTful Seguras e Escaláveis

200 !

400 !

500 !

Resultado  OK  

Erro  no  Client  

Erro  no  Server  

Page 30: Design de APIs RESTful Seguras e Escaláveis

STATUS   OK 200 !

Page 31: Design de APIs RESTful Seguras e Escaláveis

Mais  informações?  

Vídeo  do  Webinar  

hRp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐resYul  

Page 32: Design de APIs RESTful Seguras e Escaláveis

5 Segurança  

Page 33: Design de APIs RESTful Seguras e Escaláveis

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

desastradas  de  clients  

Page 34: Design de APIs RESTful Seguras e Escaláveis

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

desastradas  de  clients  

Page 35: Design de APIs RESTful Seguras e Escaláveis

þ  Identificar App (?)

þ  Identificar Usuário (?)

þ  Identificar Device (?)

Identidade e Autorização

Page 36: Design de APIs RESTful Seguras e Escaláveis

HTTPS,  sempre!  

Page 37: Design de APIs RESTful Seguras e Escaláveis

6 Hypermedia  

Page 38: Design de APIs RESTful Seguras e Escaláveis

Hypermedia  APIs  

*POX  =  Plain  Old  XML,  Richardson  Maturity  Model  

HATEOAS  =  Hypermedia  as  the  Engine  of  Applica^on  State  

Page 39: Design de APIs RESTful Seguras e Escaláveis

GET /items?q=macbook+air+new  { ! "results" : [ ! { ! "id" : 123, ! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! } ! ] !}  

SEM  Hypermedia  

Page 40: Design de APIs RESTful Seguras e Escaláveis

COM  Hypermedia  

GET /items?q=macbook+air+new  { ! "results" : [ ! {   "_links" : [ ! {"rel": "self","uri": "/items/123" }, ! {"rel": "bids","uri": "/items/123/bids" }, ! {"rel": "win","uri": "/items/123/bids?q=win" } ! ], ! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499"   } ! ] !}  

Page 41: Design de APIs RESTful Seguras e Escaláveis

7 Developers  Portal  

Page 42: Design de APIs RESTful Seguras e Escaláveis

Docs  incompletos,  desatualizados,    estáZcos  e  com  PDFs  de  100  páginas  

Page 43: Design de APIs RESTful Seguras e Escaláveis

Gemng    Started  

www.twilio.com/docs !

Page 44: Design de APIs RESTful Seguras e Escaláveis

Documentação    InteraZva  

desenvolvedores.extra.com.br!

Page 45: Design de APIs RESTful Seguras e Escaláveis

Exemplos  de    código  na    linguagem    

do  developer  

sendgrid.com/docs !

Page 46: Design de APIs RESTful Seguras e Escaláveis

UX  

(Developer  Experience)  

DX  

Page 47: Design de APIs RESTful Seguras e Escaláveis
Page 48: Design de APIs RESTful Seguras e Escaláveis

8 Self-­‐Service  

Page 49: Design de APIs RESTful Seguras e Escaláveis

Sign-­‐up  e  Tokens  de  acesso  automáZcos  

stripe.com/docs !

Page 50: Design de APIs RESTful Seguras e Escaláveis

REST  Console  ou    Sandbox  /  Playgroung  

dev.transparencia.org.br!

Page 51: Design de APIs RESTful Seguras e Escaláveis

9 Confiabilidade  

Page 52: Design de APIs RESTful Seguras e Escaláveis

Confiabilidade  Bugs  

Problemas  de  Performance  

Indisponibilidade  

Mudanças    (não-­‐planejadas)  

Falta  de  Suporte  

Page 53: Design de APIs RESTful Seguras e Escaláveis

www.sensedia.com/br !

Trace  de  calls,  Monitoramento,  Rate  LimiZng  e  

Alertas  

Page 54: Design de APIs RESTful Seguras e Escaláveis

status.aws.amazon.com!

Status  Page,  Release  Notes,  

Blog  

Page 55: Design de APIs RESTful Seguras e Escaláveis

Foruns  de  discussão  e  Abertura  de  Zckets  

desenvolvedores.extra.com.br!

Page 56: Design de APIs RESTful Seguras e Escaláveis

10 Divulgação  

Page 57: Design de APIs RESTful Seguras e Escaláveis

Hackathon  &  Open  InnovaZon  

Page 58: Design de APIs RESTful Seguras e Escaláveis

1 Developers  Cadastrados:  800+        2 Apps  Criadas:  300+        3 Tráfego:  20M  calls  /  15  dias        4 Eleições  mais  transparentes!    

Page 59: Design de APIs RESTful Seguras e Escaláveis

The  Power  of  Open  

Page 60: Design de APIs RESTful Seguras e Escaláveis

The  Power  of  Open  hRps://www.youtube.com/watch?v=7r7QpIDEI_o  

Page 61: Design de APIs RESTful Seguras e Escaláveis

Design  RESTful  2 1 Proposta  de  Valor  

3 Versionamento  

4 Error  Handling  5 Segurança  

7 Developers  Portal  6 Hypermedia  

8 Self-­‐Service  9 Confiabilidade  

10 Divulgação  

Page 62: Design de APIs RESTful Seguras e Escaláveis

Kleber  Bacili  [email protected]  @kleberbacili  

www.slideshare.net/kleberbacili/  

Design  de  APIs  RESTful    –  Seguras,  Escaláveis  e  Interoperáveis  –