Os 7 Pecados Capitais na exposição de APIs RESTful

2.091 visualizações

Publicada em

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.

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 as APIs tragam os resultados esperados.

O objetivo dessa sessão é apresentar os 7 pecados capitais (Se7en) que muitas implementações de APIs RESTful têm cometido.

Nessa apresentação são abordados tópicos como:
- Proposição de valor da API
- Design de RESTful Resources (URIs, verbos)
- Modelos de segurança
- Versionamento de APIs
- Hypermedia & Callbacks
- Padronização de erros & status code
- Onboarding, divulgação e engajamento

Publicada em: Tecnologia

Os 7 Pecados Capitais na exposição de APIs RESTful

  1. 1. Kleber  Bacili                kleber.bacili@sensedia.com                                              @kleberbacili   Os  7  pecados  capitais  na   exposição  de  APIs  RESTful  
  2. 2. www.slideshare.net/kleberbacili/  
  3. 3. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili  
  4. 4. v  SOA,  Microservices  e  APIs   v  Projetos  bacaníssimos   v  Ferramentas  sensacionais   v  Headquarter  em  Campinas,     escritórios  em  SP,  Rio  e  EUA  
  5. 5. Alguns  Clientes  
  6. 6. As  APIs  estão  por     toda  parte…  
  7. 7. Fonte:  ProgrammableWeb   Clube  dos  Bilionários   5+  Bilhões  de  Calls/Dia  1+  Bilhões  de  Calls/Dia  
  8. 8. Clube  dos  Bilionários   1.1  billion  API  calls  /  day  (April  2011)   1.4  billion  API  calls  /  day  (May  2012)   1  billion  API  calls  /  day  (Mar  2012)   13  billion  API  calls  /  day  (May  2011)   Approx.  75%  of  all  traffic  via  API   5  billion  API  calls  /  day  (October  2009)   5  billion  API  calls  /  day  (April  2010)   Fonte:  ProgrammableWeb  Founder   7,2  bilion  API  calls   (Mar/2015)  
  9. 9. Startup  BaXlefield   78%  
  10. 10. Open  Banking?  
  11. 11. Agenda     Os  7  Pecados   Como  evitá-­‐los  
  12. 12. PECADOS CAPITAIS7  
  13. 13. SOBERBA LUXÚRIA IRA AVAREZA INVEJA GULA PREGUIÇA Um  histórico  cheio     de  conveniências:   v Pros`tuição   v Vaidade   v Fornicação   v Indolência   v Melancolia    
  14. 14. 1995 Brad Pitt Morgan Freeman Gwyneth Paltrow Kevin Spacey David Fincher (Clube da Luta, House of Cards, Social Network…)
  15. 15. Preguiça   Ira   Luxúria   Avareza   Inveja  Gula   Soberba  
  16. 16. INVEJA1
  17. 17. Valor  ques`onável   “Todo mundo tem API, também vou nessa!”
  18. 18. “Você  pode  até  passar  batom  num  porco,   mas  ele  con`nuará  sendo  um  porco!”  
  19. 19. API First   APIs   v  Estratégia  de  Produto  /     Modelo  de  Negócio   v  Experiências  MulL-­‐devices   v  Parceiros  externos  e  Clientes   v  Integrações  OnPremise–Cloud  
  20. 20. PREGUIÇA2
  21. 21. Design  Mequetrefe   “Aplique conceitos RESTful”
  22. 22. §  Código  Legado   §  SOAP  Services   §  Tabelas  de  Banco   Design     Mequetrefe  
  23. 23. Coleção   /pedidos! Resources   Elemento   /pedidos/{id}!
  24. 24. /getAccount! /getAllAccounts! /createDirectory! /updateGroupName! /findClientById! RPC?  
  25. 25. GET /vendas/pedidos! POST /clientes/98W3G32K01/enderecos! {…}   PUT /clientes/98W3G32K01/enderecos/1! {…}   DELETE /users/98W3G32K01/photos! PATCH /users/98W3G32K01 ! {…}  
  26. 26. 200! 400! 500! Resultado  OK   Erro  no  Client   Erro  no  Server  
  27. 27. STATUS   OK 200!
  28. 28. GET /items?q=macbook+air+new   {! "results" : [ ! {! "id" : 123,! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! }! ]! }   SEM   Hypermedia  
  29. 29. 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"   }! ]! }  
  30. 30. Mais  informações?   Vídeo  do  Webinar   hXp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐res[ul  
  31. 31. LUXÚRIA3
  32. 32. Segurança  8  ou  80   “Nem  ligeiramente  escondido   nem  super  complexo”  
  33. 33. Auten`cação  /   Autorização   Privacidade   Integridade   Disponibilidade   Auditoria  
  34. 34. Básico   Intermediário   Crí`co   v  Open?   v  Informações   Sensíveis?   v  Transações?  
  35. 35. Usuários   Apps   Basic  HTTP   OAuth2   OpenID  Connect   Estratégias  de  Auten`cação  /  Autorização   App  Token  
  36. 36. Definição  de  Escopo  
  37. 37. Revogação     de  Token  
  38. 38. Os  Fundamentos  da   Segurança  de  APIs   WEBINAR hXp://downloads.sensedia.com/webinar-­‐seguranca-­‐de-­‐apis  
  39. 39. AVAREZA4
  40. 40. Dificultar  a  vida  do  Dev   “Saia da frente e deixe o dev trabalhar”
  41. 41. Docs  incompletos,  desatualizados,     está`cos  e  com  PDFs  de  200  páginas  
  42. 42. Sign-­‐up  e  Tokens  de   acesso  automá`cos   stripe.com/docs!
  43. 43. Geong     Started   www.twilio.com/docs!
  44. 44. Documentação     Intera`va   desenvolvedores.extra.com.br!
  45. 45. Exemplos  de     código  na     linguagem     do  developer   sendgrid.com/docs!
  46. 46. REST  Console  ou     Sandbox  /  Playgroung   dev.transparencia.org.br!
  47. 47. UX   (Developer  Experience)   DX  
  48. 48. GULA5
  49. 49. Entregar  API  instável   Negócios podem ser montados sobre sua API”
  50. 50. Eat  you  own   DOG FOOD
  51. 51. Powered  by   Saiba  antes  que   SEU CLIENTE
  52. 52. Client  Apps   APIs   Rate  Limi`ng  Policy   JSON  Threat  Policy   Payload  Size  Policy   IP  Filtering  Policy   …   API  Gateway   Powered  by  
  53. 53. IRA6
  54. 54. Irritar  os  Devs   “Não quebre os apps dos seus parceiros”
  55. 55. THINGS CHANGE! v1   v2   v3   v4  
  56. 56. 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  
  57. 57. Foruns  de  discussão   e  Abertura  de  `ckets   desenvolvedores.extra.com.br!
  58. 58. Powered  by   Troubleshoo`ng   E SUPORTE
  59. 59. SOBERBA7
  60. 60. Dirigir  de  olhos  fechados   “Para quem não sabe onde quer chegar, qualquer caminho serve”
  61. 61. 13  bilhões  de  chamadas/dia   5  bilhões  de  chamadas/dia     5  bilhões  de  chamadas/dia     VAIDADE?
  62. 62.   Desenvolvedores   #  total   #  devs  aLvos   taxa  de  retenção       Serviço   performance   taxa  de  erros   disponibilidade       Negócios   faturamento   market  share   custos  totais       Marke`ng   #  registro  de  devs   origem  do  tráfego   métricas  de  evento       Estrutura   estabilidade   maturidade   taxa  de  mudanças       Inovação   #  produtos   #  apps   tempo  até  vender       Comunidade   mídias  sociais   aLvidade  dos  fóruns   taxa  de  crescimento       Canal   origem  das  chamadas   faturamento  por   canal       Tráfego   #  chamadas   #  abusos  de  cota   recursos  mais  usados     hNp://www.slideshare.net/Sensedia/indicadores-­‐para-­‐ap-­‐is  
  63. 63. www.sensedia.com/br! Definição  de   indicadores,     Monitoramento   e  Alertas  
  64. 64. 7 SOBERBA 3 LUXÚRIA 6 IRA 4 AVAREZA 1 INVEJA 5 GULA 2 PREGUIÇA Valor questionável Segurança 8 ou 80 Design Mequetrefe Dirigir de olhos fechados Irritar os Devs Dificultar a vida do Dev Entregar a API Instável
  65. 65. Kleber  Bacili                kleber.bacili@sensedia.com                                              @kleberbacili   Os  7  pecados  capitais  na   exposição  de  APIs  RESTful   www.slideshare.net/kleberbacili/  

×