SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
Design	
  de	
  APIs	
  RESTful	
  	
  
–	
  Seguras,	
  Escaláveis	
  e	
  Interoperáveis	
  –	
  
www.slideshare.net/kleberbacili/	
  
Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@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…..	
  
10Dicas	
  para	
  a	
  sua	
  API	
  
ser	
  um	
  sucesso	
  
Dica	
  Zero!	
  
Selecione	
  a	
  Tecnologia	
  Adequada	
  
RESTSOAP vs.
Selecione	
  a	
  Tecnologia	
  Adequada	
  
JSONXML vs.
and the winners are…
REST + JSON
1Proposta	
  de	
  Valor	
  
“Você	
  pode	
  até	
  passar	
  batom	
  num	
  porco,	
  
mas	
  ele	
  conZnuará	
  sendo	
  um	
  porco!”	
  
2Design	
  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 !
{…}	
  
3Versionamento	
  
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	
  
4Error	
  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	
  
5Seguranç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!	
  
6Hypermedia	
  
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" 	
  
}!
]!
} 	
  
7Developers	
  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	
  
8Self-­‐Service	
  
Sign-­‐up	
  e	
  Tokens	
  de	
  
acesso	
  automáZcos	
  
stripe.com/docs!
REST	
  Console	
  ou	
  	
  
Sandbox	
  /	
  Playgroung	
  
dev.transparencia.org.br!
9Confiabilidade	
  
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!
10Divulgaçã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	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
www.slideshare.net/kleberbacili/	
  
Design	
  de	
  APIs	
  RESTful	
  	
  
–	
  Seguras,	
  Escaláveis	
  e	
  Interoperáveis	
  –	
  

Contenu connexe

Similaire à Design de APIs RESTful Seguras e Escaláveis

Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
INdT
 

Similaire à Design de APIs RESTful Seguras e Escaláveis (20)

APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
 
Impulsionando startups com api publica
Impulsionando startups com api publicaImpulsionando startups com api publica
Impulsionando startups com api publica
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...Raymundo ferreira   desenvolvendo apps com html e java script no windows phon...
Raymundo ferreira desenvolvendo apps com html e java script no windows phon...
 
Usando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasUsando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App Creditas
 
PHP e o Desenvolvimento Mobile Web
PHP e o Desenvolvimento Mobile WebPHP e o Desenvolvimento Mobile Web
PHP e o Desenvolvimento Mobile Web
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
 
Expondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travadosExpondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travados
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Code Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágilCode Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágil
 
HTML E WEB - COMO FUNCIONA E TUTORIAL
HTML E WEB - COMO FUNCIONA E TUTORIALHTML E WEB - COMO FUNCIONA E TUTORIAL
HTML E WEB - COMO FUNCIONA E TUTORIAL
 
A solução para Blockchain da Oracle
A solução para Blockchain da OracleA solução para Blockchain da Oracle
A solução para Blockchain da Oracle
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
PHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalPHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederal
 
TDC 2015 Florianopolis
TDC 2015 FlorianopolisTDC 2015 Florianopolis
TDC 2015 Florianopolis
 
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TIVIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 
Ux for Developers - Build Better Products
Ux for Developers - Build Better ProductsUx for Developers - Build Better Products
Ux for Developers - Build Better Products
 

Design de APIs RESTful Seguras e Escaláveis