Design de APIs RESTful Seguras e Escaláveis

610 visualizações

Publicada em

Apresentação realizada no evento Developerweek em Vitória/ES.

Impulsionadas pelas estratégias digitais em mobilidade, cloud, mídias sociais e internet das coisas, as APIs estão realmente entrando no dia-a-dia das equipes de desenvolvimento, seja de startups, começando a desenvolver seus produtos, seja de grandes empresas, que carregam um grande legado de sistemas e investimentos já realizados em middlewares de integração.

Aliado a isso, 2014 foi o ano em que a segurança digital ficou com as luzes vermelhas acesas devido a ataques, vazamentos e vulnerabilidades descobertas.

Diversas razões que podem levar uma empresa a expor APIs. Mas seja qual for a sua, alguns cuidados são imprescindíveis para que dados sensíveis não vazem ou sistemas críticos não sejam derrubados.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
610
No SlideShare
0
A partir de incorporações
0
Número de incorporações
14
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Design de APIs RESTful Seguras e Escaláveis

  1. 1. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   Design  de  APIs  RESTful     –  Seguras,  Escaláveis  e  Interoperáveis  –  
  2. 2. www.slideshare.net/kleberbacili/  
  3. 3. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   Cerquilho  
  4. 4. 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  
  5. 5. As  APIs  estão  por     toda  parte…  
  6. 6. Fonte:  ProgrammableWeb   Clube  dos  Bilhões   5+  Bilhões  de  Calls/Dia  1+  Bilhões  de  Calls/Dia  
  7. 7. Startup  BaKlefield   78%  
  8. 8. The  Internet   of  Things  
  9. 9. Open  Banking?  
  10. 10. ²  Eu  ainda  não  tenho  API…..   ²  Eu  nem  sei  como  fazer  uma  API…..   ²  E  a  segurança…..  
  11. 11. 10Dicas  para  a  sua  API   ser  um  sucesso  
  12. 12. Dica  Zero!  
  13. 13. Selecione  a  Tecnologia  Adequada   RESTSOAP vs.
  14. 14. Selecione  a  Tecnologia  Adequada   JSONXML vs.
  15. 15. and the winners are… REST + JSON
  16. 16. 1Proposta  de  Valor  
  17. 17. “Você  pode  até  passar  batom  num  porco,   mas  ele  conZnuará  sendo  um  porco!”  
  18. 18. 2Design  RESTful  
  19. 19. Coleção   /pedidos! Resources   Elemento   /pedidos/{id}!
  20. 20. /getAccount! /getAllAccounts! /createDirectory! /updateGroupName! /findClientById! RPC?  
  21. 21. VERBOS  
  22. 22. GET /vendas/pedidos! POST /clientes/98W3G32K01/enderecos! {…}   PUT /clientes/98W3G32K01/enderecos/1! {…}   DELETE /users/98W3G32K01/photos! PATCH /users/98W3G32K01 ! {…}  
  23. 23. 3Versionamento  
  24. 24. v1   v2   v3   v4   v5   v6   v7   THINGS   CHANGE!  
  25. 25. 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  
  26. 26. 4Error  Handling  
  27. 27. 200! 400! 500! Resultado  OK   Erro  no  Client   Erro  no  Server  
  28. 28. STATUS   OK 200!
  29. 29. Mais  informações?   Vídeo  do  Webinar   hRp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐resYul  
  30. 30. 5Segurança  
  31. 31. v Acesso  não  autorizado   v Ataques   v Sobrecarga   v Confidencialidade   v Implementações     desastradas  de  clients  
  32. 32. v Acesso  não  autorizado   v Ataques   v Sobrecarga   v Confidencialidade   v Implementações     desastradas  de  clients  
  33. 33. þ  Identificar App (?) þ  Identificar Usuário (?) þ  Identificar Device (?) Identidade e Autorização
  34. 34. HTTPS,  sempre!  
  35. 35. 6Hypermedia  
  36. 36. Hypermedia  APIs   *POX  =  Plain  Old  XML,  Richardson  Maturity  Model   HATEOAS  =  Hypermedia  as  the   Engine  of  Applica^on  State  
  37. 37. GET /items?q=macbook+air+new   {! "results" : [ ! {! "id" : 123,! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! }! ]! }   SEM   Hypermedia  
  38. 38. 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"   }! ]! }  
  39. 39. 7Developers  Portal  
  40. 40. Docs  incompletos,  desatualizados,     estáZcos  e  com  PDFs  de  100  páginas  
  41. 41. Gemng     Started   www.twilio.com/docs!
  42. 42. Documentação     InteraZva   desenvolvedores.extra.com.br!
  43. 43. Exemplos  de     código  na     linguagem     do  developer   sendgrid.com/docs!
  44. 44. UX   (Developer  Experience)   DX  
  45. 45. 8Self-­‐Service  
  46. 46. Sign-­‐up  e  Tokens  de   acesso  automáZcos   stripe.com/docs!
  47. 47. REST  Console  ou     Sandbox  /  Playgroung   dev.transparencia.org.br!
  48. 48. 9Confiabilidade  
  49. 49. Confiabilidade  Bugs   Problemas  de   Performance   Indisponibilidade   Mudanças     (não-­‐planejadas)   Falta  de   Suporte  
  50. 50. www.sensedia.com/br! Trace  de  calls,   Monitoramento,   Rate  LimiZng  e   Alertas  
  51. 51. status.aws.amazon.com! Status  Page,   Release  Notes,   Blog  
  52. 52. Foruns  de  discussão   e  Abertura  de  Zckets   desenvolvedores.extra.com.br!
  53. 53. 10Divulgação  
  54. 54. Hackathon  &  Open  InnovaZon  
  55. 55. 1 Developers  Cadastrados:  800+         2 Apps  Criadas:  300+         3 Tráfego:  20M  calls  /  15  dias         4 Eleições  mais  transparentes!    
  56. 56. The  Power  of  Open  
  57. 57. The  Power  of  Open   hRps://www.youtube.com/watch?v=7r7QpIDEI_o  
  58. 58. 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  
  59. 59. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   www.slideshare.net/kleberbacili/   Design  de  APIs  RESTful     –  Seguras,  Escaláveis  e  Interoperáveis  –  

×