design de apis restful seguras e escaláveis
TRANSCRIPT
Kleber Bacili [email protected] @kleberbacili
Design de APIs RESTful – Seguras, Escaláveis e Interoperáveis –
www.slideshare.net/kleberbacili/
Kleber Bacili [email protected] @kleberbacili
Cerquilho
v Design, Exposição, Gerenciamento e Engajamento em APIs
v Headquarter em Campinas, escritórios em Sampa, Rio e Philly
v Classificados como Visionários no Quadrante Mágico do Gartner
(*) Magic Quadrant for Integrated SOA Governance Technology Sets, 2009
As APIs estão por toda parte…
Fonte: ProgrammableWeb
Clube dos Bilhões 5+ Bilhões de Calls/Dia 1+ Bilhões de Calls/Dia
Startup BaKlefield
78%
The Internet of Things
Open Banking?
² Eu ainda não tenho API….. ² Eu nem sei como fazer uma API…..
² E a segurança…..
10 Dicas para a sua API
ser um sucesso
Dica Zero!
Selecione a Tecnologia Adequada
REST SOAP vs.
Selecione a Tecnologia Adequada
JSON XML vs.
and the winners are…
REST + JSON
1 Proposta de Valor
“Você pode até passar batom num porco, mas ele conZnuará sendo um porco!”
2 Design RESTful
Coleção /pedidos!
Resources Elemento
/pedidos/{id} !
/getAccount!/getAllAccounts!/createDirectory!/updateGroupName!/findClientById!
RPC?
VERBOS
GET /vendas/pedidos!
POST /clientes/98W3G32K01/enderecos!{…}
PUT /clientes/98W3G32K01/enderecos/1 !{…}
DELETE /users/98W3G32K01/photos !
PATCH /users/98W3G32K01 !{…}
3 Versionamento
v1 v2 v3 v4 v5 v6 v7
THINGS CHANGE!
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
4 Error Handling
200 !
400 !
500 !
Resultado OK
Erro no Client
Erro no Server
STATUS OK 200 !
Mais informações?
Vídeo do Webinar
hRp://downloads.sensedia.com/webinar-‐design-‐de-‐apis-‐resYul
5 Segurança
v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações
desastradas de clients
v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações
desastradas de clients
þ Identificar App (?)
þ Identificar Usuário (?)
þ Identificar Device (?)
Identidade e Autorização
HTTPS, sempre!
6 Hypermedia
Hypermedia APIs
*POX = Plain Old XML, Richardson Maturity Model
HATEOAS = Hypermedia as the Engine of Applica^on State
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" } ! ] !}
7 Developers Portal
Docs incompletos, desatualizados, estáZcos e com PDFs de 100 páginas
Gemng Started
www.twilio.com/docs !
Documentação InteraZva
desenvolvedores.extra.com.br!
Exemplos de código na linguagem
do developer
sendgrid.com/docs !
UX
(Developer Experience)
DX
8 Self-‐Service
Sign-‐up e Tokens de acesso automáZcos
stripe.com/docs !
REST Console ou Sandbox / Playgroung
dev.transparencia.org.br!
9 Confiabilidade
Confiabilidade Bugs
Problemas de Performance
Indisponibilidade
Mudanças (não-‐planejadas)
Falta de Suporte
www.sensedia.com/br !
Trace de calls, Monitoramento, Rate LimiZng e
Alertas
status.aws.amazon.com!
Status Page, Release Notes,
Blog
Foruns de discussão e Abertura de Zckets
desenvolvedores.extra.com.br!
10 Divulgação
Hackathon & Open InnovaZon
1 Developers Cadastrados: 800+ 2 Apps Criadas: 300+ 3 Tráfego: 20M calls / 15 dias 4 Eleições mais transparentes!
The Power of Open
The Power of Open hRps://www.youtube.com/watch?v=7r7QpIDEI_o
Design RESTful 2 1 Proposta de Valor
3 Versionamento
4 Error Handling 5 Segurança
7 Developers Portal 6 Hypermedia
8 Self-‐Service 9 Confiabilidade
10 Divulgação
Kleber Bacili [email protected] @kleberbacili
www.slideshare.net/kleberbacili/
Design de APIs RESTful – Seguras, Escaláveis e Interoperáveis –