os 7 pecados capitais na exposição de apis restful

71
Kleber Bacili [email protected] @kleberbacili Os 7 pecados capitais na exposição de APIs RESTful

Upload: kleber-bacili

Post on 20-Jul-2015

475 views

Category:

Technology


1 download

TRANSCRIPT

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

Kleber  Bacili                [email protected]                                              @kleberbacili  

Os  7  pecados  capitais  na  exposição  de  APIs  RESTful  

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

www.slideshare.net/kleberbacili/  

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

Kleber  Bacili  [email protected]  @kleberbacili  

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

v  SOA,  Microservices  e  APIs  

v  Projetos  bacaníssimos  

v  Ferramentas  sensacionais  

v  Headquarter  em  Campinas,    escritórios  em  SP,  Rio  e  EUA  

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

Alguns  Clientes  

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

As  APIs  estão  por    toda  parte…  

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

Fonte:  ProgrammableWeb  

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

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

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)  

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

Startup  BaXlefield  

78%  

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

Open  Banking?  

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

Agenda  

 

Os  7  Pecados  

Como  evitá-­‐los  

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

PECADOS CAPITAIS7  

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

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    

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

1995

Brad Pitt Morgan Freeman Gwyneth Paltrow Kevin Spacey

David Fincher (Clube da Luta, House of Cards, Social Network…)

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

Preguiça  Ira  

Luxúria  

Avareza  

Inveja  Gula  

Soberba  

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

INVEJA1

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

Valor  ques`onável  “Todo mundo tem API, também vou nessa!”

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

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

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

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  

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

PREGUIÇA2

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

Design  Mequetrefe  “Aplique conceitos RESTful”

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

§  Código  Legado  §  SOAP  Services  §  Tabelas  de  Banco  

Design    Mequetrefe  

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

Coleção  /pedidos!

Resources  Elemento  

/pedidos/{id} !

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

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

RPC?  

Page 25: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 26: Os 7 Pecados Capitais na exposição de APIs RESTful

GET /vendas/pedidos!

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

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

DELETE /users/98W3G32K01/photos !

PATCH /users/98W3G32K01 !{…}  

Page 27: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 28: Os 7 Pecados Capitais na exposição de APIs RESTful

200 !

400 !

500 !

Resultado  OK  

Erro  no  Client  

Erro  no  Server  

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

STATUS   OK 200 !

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

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

SEM  Hypermedia  

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

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 32: Os 7 Pecados Capitais na exposição de APIs RESTful

Mais  informações?  

Vídeo  do  Webinar  

hXp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐res[ul  

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

LUXÚRIA3

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

Segurança  8  ou  80  “Nem  ligeiramente  escondido  nem  super  complexo”  

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

Auten`cação  /  Autorização  

Privacidade  

Integridade   Disponibilidade  

Auditoria  

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

Básico  

Intermediário  

Crí`co  v  Open?  

v  Informações  Sensíveis?  

v  Transações?  

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

Usuários   Apps  

Basic  HTTP   OAuth2   OpenID  Connect  

Estratégias  de  Auten`cação  /  Autorização  

App  Token  

Page 38: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 39: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 40: Os 7 Pecados Capitais na exposição de APIs RESTful

Definição  de  Escopo  

Page 41: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 42: Os 7 Pecados Capitais na exposição de APIs RESTful

Revogação    de  Token  

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

Os  Fundamentos  da  Segurança  de  APIs  

WEBINAR

hXp://downloads.sensedia.com/webinar-­‐seguranca-­‐de-­‐apis  

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

AVAREZA4

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

Dificultar  a  vida  do  Dev  “Saia da frente e deixe o dev trabalhar”

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

Docs  incompletos,  desatualizados,    está`cos  e  com  PDFs  de  200  páginas  

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

Sign-­‐up  e  Tokens  de  acesso  automá`cos  

stripe.com/docs !

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

Geong    Started  

www.twilio.com/docs !

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

Documentação    Intera`va  

desenvolvedores.extra.com.br!

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

Exemplos  de    código  na    linguagem    

do  developer  

sendgrid.com/docs !

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

REST  Console  ou    Sandbox  /  Playgroung  

dev.transparencia.org.br!

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

UX  

(Developer  Experience)  

DX  

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

GULA5

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

Entregar  API  instável  Negócios podem ser montados sobre sua API”

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

Eat  you  own  DOG FOOD

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

Powered  by  

Saiba  antes  que  SEU CLIENTE

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

Client  Apps  

APIs  

Rate  Limi`ng  Policy  JSON  Threat  Policy  Payload  Size  Policy  IP  Filtering  Policy  …  

API  Gateway  

Powered  by  

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

IRA6

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

Irritar  os  Devs  “Não quebre os apps dos seus parceiros”

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

THINGS CHANGE!

v1  

v2  v3   v4  

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

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 62: Os 7 Pecados Capitais na exposição de APIs RESTful

Foruns  de  discussão  e  Abertura  de  `ckets  

desenvolvedores.extra.com.br!

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

Powered  by  

Troubleshoo`ng  E SUPORTE

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

SOBERBA7

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

Dirigir  de  olhos  fechados  “Para quem não sabe onde quer chegar, qualquer caminho serve”

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

13  bilhões  de  chamadas/dia  

5  bilhões  de  chamadas/dia    

5  bilhões  de  chamadas/dia    

VAIDADE?

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

 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  

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

www.sensedia.com/br !

Definição  de  indicadores,    

Monitoramento  e  Alertas  

Page 69: Os 7 Pecados Capitais na exposição de APIs RESTful
Page 70: Os 7 Pecados Capitais na exposição de APIs RESTful

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

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

Kleber  Bacili                [email protected]                                              @kleberbacili  

Os  7  pecados  capitais  na  exposição  de  APIs  RESTful  

www.slideshare.net/kleberbacili/