Os 7 Pecados Capitais na exposição de APIs RESTful
-
Upload
kleber-bacili -
Category
Technology
-
view
475 -
download
1
Transcript of 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/
Kleber Bacili [email protected] @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 [email protected] @kleberbacili
Os 7 pecados capitais na exposição de APIs RESTful
www.slideshare.net/kleberbacili/