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

Post on 20-Jul-2015

475 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/  

top related