Kleber	
  Bacili	
  
	
  	
  	
  	
  	
  	
  	
  kleber.bacili@sensedia.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
 ...
www.slideshare.net/kleberbacili/	
  
Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
v  SOA,	
  Microservices	
  e	
  APIs	
  
v  Projetos	
  bacaníssimos	
  
v  Ferramentas	
  sensacionais	
  
v  Headqu...
Alguns	
  Clientes	
  
As	
  APIs	
  estão	
  por	
  	
  
toda	
  parte…	
  
Fonte:	
  ProgrammableWeb	
  
Clube	
  dos	
  Bilionários	
  
5+	
  Bilhões	
  de	
  Calls/Dia	
  1+	
  Bilhões	
  de	
  C...
Clube	
  dos	
  Bilionários	
  
1.1	
  billion	
  API	
  calls	
  /	
  day	
  (April	
  2011)	
  
1.4	
  billion	
  API	
 ...
Startup	
  BaXlefield	
  
78%	
  
Open	
  Banking?	
  
Agenda	
  
	
  
Os	
  7	
  Pecados	
  
Como	
  evitá-­‐los	
  
PECADOS
CAPITAIS7	
  
SOBERBA
LUXÚRIA
IRA
AVAREZA
INVEJA
GULA
PREGUIÇA
Um	
  histórico	
  cheio	
  	
  
de	
  conveniências:	
  
v Pros`tuição	...
1995
Brad Pitt
Morgan Freeman
Gwyneth Paltrow
Kevin Spacey
David Fincher
(Clube da Luta, House of Cards, Social Network…)
Preguiça	
  
Ira	
  
Luxúria	
  
Avareza	
  
Inveja	
  Gula	
  
Soberba	
  
INVEJA1
Valor	
  ques`onável	
  
“Todo mundo tem API,
também vou nessa!”
“Você	
  pode	
  até	
  passar	
  batom	
  num	
  porco,	
  
mas	
  ele	
  con`nuará	
  sendo	
  um	
  porco!”	
  
API
First	
  
APIs	
  
v  Estratégia	
  de	
  Produto	
  /	
  	
  
Modelo	
  de	
  Negócio	
  
v  Experiências	
  MulL-­...
PREGUIÇA2
Design	
  Mequetrefe	
  
“Aplique conceitos RESTful”
§  Código	
  Legado	
  
§  SOAP	
  Services	
  
§  Tabelas	
  de	
  Banco	
  
Design	
  	
  
Mequetrefe	
  
Coleção	
  
/pedidos!
Resources	
  
Elemento	
  
/pedidos/{id}!
/getAccount!
/getAllAccounts!
/createDirectory!
/updateGroupName!
/findClientById!
RPC?	
  
GET /vendas/pedidos!
POST /clientes/98W3G32K01/enderecos!
{…}	
  
PUT /clientes/98W3G32K01/enderecos/1!
{…}	
  
DELETE /us...
200!
400!
500!
Resultado	
  OK	
  
Erro	
  no	
  Client	
  
Erro	
  no	
  Server	
  
STATUS	
   OK 200!
GET /items?q=macbook+air+new 	
  
{!
"results" : [ !
{!
"id" : 123,!
"name" : "Macbook Air 2010 LIKE NEW", !
"price" : "49...
COM	
  
Hypermedia	
  
GET /items?q=macbook+air+new 	
  
{!
"results" : [ !
{ 	
  
"_links" : [!
{"rel": "self","uri": "/i...
Mais	
  informações?	
  
Vídeo	
  do	
  Webinar	
  
hXp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐res[ul	
  
LUXÚRIA3
Segurança	
  8	
  ou	
  80	
  
“Nem	
  ligeiramente	
  escondido	
  
nem	
  super	
  complexo”	
  
Auten`cação	
  /	
  
Autorização	
  
Privacidade	
  
Integridade	
   Disponibilidade	
  
Auditoria	
  
Básico	
  
Intermediário	
  
Crí`co	
  
v  Open?	
  
v  Informações	
  
Sensíveis?	
  
v  Transações?	
  
Usuários	
   Apps	
  
Basic	
  HTTP	
   OAuth2	
   OpenID	
  Connect	
  
Estratégias	
  de	
  Auten`cação	
  /	
  Autoriza...
Definição	
  de	
  Escopo	
  
Revogação	
  	
  
de	
  Token	
  
Os	
  Fundamentos	
  da	
  
Segurança	
  de	
  APIs	
  
WEBINAR
hXp://downloads.sensedia.com/webinar-­‐seguranca-­‐de-­‐ap...
AVAREZA4
Dificultar	
  a	
  vida	
  do	
  Dev	
  
“Saia da frente e deixe o
dev trabalhar”
Docs	
  incompletos,	
  desatualizados,	
  	
  
está`cos	
  e	
  com	
  PDFs	
  de	
  200	
  páginas	
  
Sign-­‐up	
  e	
  Tokens	
  de	
  
acesso	
  automá`cos	
  
stripe.com/docs!
Geong	
  	
  
Started	
  
www.twilio.com/docs!
Documentação	
  	
  
Intera`va	
  
desenvolvedores.extra.com.br!
Exemplos	
  de	
  	
  
código	
  na	
  	
  
linguagem	
  	
  
do	
  developer	
  
sendgrid.com/docs!
REST	
  Console	
  ou	
  	
  
Sandbox	
  /	
  Playgroung	
  
dev.transparencia.org.br!
UX	
  
(Developer	
  Experience)	
  
DX	
  
GULA5
Entregar	
  API	
  instável	
  
Negócios podem ser
montados sobre sua API”
Eat	
  you	
  own	
  
DOG FOOD
Powered	
  by	
  
Saiba	
  antes	
  que	
  
SEU CLIENTE
Client	
  Apps	
  
APIs	
  
Rate	
  Limi`ng	
  Policy	
  
JSON	
  Threat	
  Policy	
  
Payload	
  Size	
  Policy	
  
IP	
 ...
IRA6
Irritar	
  os	
  Devs	
  
“Não quebre os apps
dos seus parceiros”
THINGS
CHANGE!
v1	
  
v2	
  
v3	
   v4	
  
Versionamento	
  
Versão	
  
URI:	
   https://api.mycompany.com/name-of-api/v2/resource!
HTTP	
  ou	
  	
  
HTTPS	
  
Seu	...
Foruns	
  de	
  discussão	
  
e	
  Abertura	
  de	
  `ckets	
  
desenvolvedores.extra.com.br!
Powered	
  by	
  
Troubleshoo`ng	
  
E SUPORTE
SOBERBA7
Dirigir	
  de	
  olhos	
  fechados	
  
“Para quem não sabe onde quer
chegar, qualquer caminho serve”
13	
  bilhões	
  de	
  chamadas/dia	
  
5	
  bilhões	
  de	
  chamadas/dia	
  	
  
5	
  bilhões	
  de	
  chamadas/dia	
  	...
 
Desenvolvedores	
  
#	
  total	
  
#	
  devs	
  aLvos	
  
taxa	
  de	
  retenção	
  
	
  
	
  
Serviço	
  
performance	
...
www.sensedia.com/br!
Definição	
  de	
  
indicadores,	
  	
  
Monitoramento	
  
e	
  Alertas	
  
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
Diri...
Kleber	
  Bacili	
  
	
  	
  	
  	
  	
  	
  	
  kleber.bacili@sensedia.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
 ...
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
Próximos SlideShares
Carregando em…5
×

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

2.259 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/  

×