Kleber	
  Bacili	
  
	
  	
  	
  	
  	
  	
  	
  kleber.bacili@sensedia.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  @kleberbacili	
  
Os	
  7	
  pecados	
  capitais	
  na	
  
exposição	
  de	
  APIs	
  RESTful	
  
www.slideshare.net/kleberbacili/	
  
Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
v  SOA,	
  Microservices	
  e	
  APIs	
  
v  Projetos	
  bacaníssimos	
  
v  Ferramentas	
  sensacionais	
  
v  Headquarter	
  em	
  Campinas,	
  	
  
escritórios	
  em	
  SP,	
  Rio	
  e	
  EUA	
  
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	
  Calls/Dia	
  
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)	
  
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	
  
v Vaidade	
  
v Fornicação	
  
v Indolência	
  
v Melancolia	
  
	
  
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-­‐devices	
  
v  Parceiros	
  externos	
  e	
  Clientes	
  
v  Integrações	
  OnPremise–Cloud	
  
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 /users/98W3G32K01/photos!
PATCH /users/98W3G32K01 !
{…}	
  
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" : "499" !
}!
]!
} 	
  
SEM	
  
Hypermedia	
  
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" 	
  
}!
]!
} 	
  
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ção	
  
App	
  Token	
  
Definição	
  de	
  Escopo	
  
Revogação	
  	
  
de	
  Token	
  
Os	
  Fundamentos	
  da	
  
Segurança	
  de	
  APIs	
  
WEBINAR
hXp://downloads.sensedia.com/webinar-­‐seguranca-­‐de-­‐apis	
  
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	
  Filtering	
  Policy	
  
…	
  
API	
  Gateway	
  
Powered	
  by	
  
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	
  domínio	
   Nome	
  da	
  API	
  
(opcional)	
  
Recursos	
  e	
  
Parâmetros	
  
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	
  	
  
VAIDADE?
 
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	
  
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
Dirigir de olhos fechados
Irritar os Devs
Dificultar a vida do Dev
Entregar a API Instável
Kleber	
  Bacili	
  
	
  	
  	
  	
  	
  	
  	
  kleber.bacili@sensedia.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  @kleberbacili	
  
Os	
  7	
  pecados	
  capitais	
  na	
  
exposição	
  de	
  APIs	
  RESTful	
  
www.slideshare.net/kleberbacili/	
  

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