Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
Design	
  de	
  APIs	
  RESTful	
  	
  
–	
  Seguras...
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,	
...
As	
  APIs	
  estão	
  por	
  	
  
toda	
  parte…	
  
Fonte:	
  ProgrammableWeb	
  
Clube	
  dos	
  Bilhões	
  
5+	
  Bilhões	
  de	
  Calls/Dia	
  1+	
  Bilhões	
  de	
  Calls...
Startup	
  BaKlefield	
  
78%	
  
The	
  Internet	
  
of	
  Things	
  
Open	
  Banking?	
  
²  Eu	
  ainda	
  não	
  tenho	
  API…..	
  
²  Eu	
  nem	
  sei	
  como	
  fazer	
  uma	
  API…..	
  
²  E	
  a	
  seg...
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 /us...
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	...
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	
  	
  
desa...
v Acesso	
  não	
  autorizado	
  
v Ataques	
  
v Sobrecarga	
  
v Confidencialidade	
  
v Implementações	
  	
  
desa...
þ  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...
GET /items?q=macbook+air+new 	
  
{!
"results" : [ !
{!
"id" : 123,!
"name" : "Macbook Air 2010 LIKE NEW", !
"price" : "49...
COM	
  
Hypermedia	
  
GET /items?q=macbook+air+new 	
  
{!
"results" : [ !
{ 	
  
"_links" : [!
{"rel": "self","uri": "/i...
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)	
 ...
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	
 ...
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 Develop...
Kleber	
  Bacili	
  
kleber.bacili@sensedia.com	
  
@kleberbacili	
  
www.slideshare.net/kleberbacili/	
  
Design	
  de	
 ...
Design de APIs RESTful Seguras e Escaláveis
Design de APIs RESTful Seguras e Escaláveis
Design de APIs RESTful Seguras e Escaláveis
Próximos SlideShares
Carregando em…5
×

Design de APIs RESTful Seguras e Escaláveis

659 visualizações

Publicada em

Apresentação realizada no evento Developerweek em Vitória/ES.

Impulsionadas pelas estratégias digitais em mobilidade, cloud, mídias sociais e internet das coisas, as APIs estão realmente entrando no dia-a-dia das equipes de desenvolvimento, seja de startups, começando a desenvolver seus produtos, seja de grandes empresas, que carregam um grande legado de sistemas e investimentos já realizados em middlewares de integração.

Aliado a isso, 2014 foi o ano em que a segurança digital ficou com as luzes vermelhas acesas devido a ataques, vazamentos e vulnerabilidades descobertas.

Diversas razões que podem levar uma empresa a expor APIs. Mas seja qual for a sua, alguns cuidados são imprescindíveis para que dados sensíveis não vazem ou sistemas críticos não sejam derrubados.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
659
No SlideShare
0
A partir de incorporações
0
Número de incorporações
14
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Design de APIs RESTful Seguras e Escaláveis

  1. 1. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   Design  de  APIs  RESTful     –  Seguras,  Escaláveis  e  Interoperáveis  –  
  2. 2. www.slideshare.net/kleberbacili/  
  3. 3. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   Cerquilho  
  4. 4. 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  
  5. 5. As  APIs  estão  por     toda  parte…  
  6. 6. Fonte:  ProgrammableWeb   Clube  dos  Bilhões   5+  Bilhões  de  Calls/Dia  1+  Bilhões  de  Calls/Dia  
  7. 7. Startup  BaKlefield   78%  
  8. 8. The  Internet   of  Things  
  9. 9. Open  Banking?  
  10. 10. ²  Eu  ainda  não  tenho  API…..   ²  Eu  nem  sei  como  fazer  uma  API…..   ²  E  a  segurança…..  
  11. 11. 10Dicas  para  a  sua  API   ser  um  sucesso  
  12. 12. Dica  Zero!  
  13. 13. Selecione  a  Tecnologia  Adequada   RESTSOAP vs.
  14. 14. Selecione  a  Tecnologia  Adequada   JSONXML vs.
  15. 15. and the winners are… REST + JSON
  16. 16. 1Proposta  de  Valor  
  17. 17. “Você  pode  até  passar  batom  num  porco,   mas  ele  conZnuará  sendo  um  porco!”  
  18. 18. 2Design  RESTful  
  19. 19. Coleção   /pedidos! Resources   Elemento   /pedidos/{id}!
  20. 20. /getAccount! /getAllAccounts! /createDirectory! /updateGroupName! /findClientById! RPC?  
  21. 21. VERBOS  
  22. 22. GET /vendas/pedidos! POST /clientes/98W3G32K01/enderecos! {…}   PUT /clientes/98W3G32K01/enderecos/1! {…}   DELETE /users/98W3G32K01/photos! PATCH /users/98W3G32K01 ! {…}  
  23. 23. 3Versionamento  
  24. 24. v1   v2   v3   v4   v5   v6   v7   THINGS   CHANGE!  
  25. 25. 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  
  26. 26. 4Error  Handling  
  27. 27. 200! 400! 500! Resultado  OK   Erro  no  Client   Erro  no  Server  
  28. 28. STATUS   OK 200!
  29. 29. Mais  informações?   Vídeo  do  Webinar   hRp://downloads.sensedia.com/webinar-­‐design-­‐de-­‐apis-­‐resYul  
  30. 30. 5Segurança  
  31. 31. v Acesso  não  autorizado   v Ataques   v Sobrecarga   v Confidencialidade   v Implementações     desastradas  de  clients  
  32. 32. v Acesso  não  autorizado   v Ataques   v Sobrecarga   v Confidencialidade   v Implementações     desastradas  de  clients  
  33. 33. þ  Identificar App (?) þ  Identificar Usuário (?) þ  Identificar Device (?) Identidade e Autorização
  34. 34. HTTPS,  sempre!  
  35. 35. 6Hypermedia  
  36. 36. Hypermedia  APIs   *POX  =  Plain  Old  XML,  Richardson  Maturity  Model   HATEOAS  =  Hypermedia  as  the   Engine  of  Applica^on  State  
  37. 37. GET /items?q=macbook+air+new   {! "results" : [ ! {! "id" : 123,! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! }! ]! }   SEM   Hypermedia  
  38. 38. 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"   }! ]! }  
  39. 39. 7Developers  Portal  
  40. 40. Docs  incompletos,  desatualizados,     estáZcos  e  com  PDFs  de  100  páginas  
  41. 41. Gemng     Started   www.twilio.com/docs!
  42. 42. Documentação     InteraZva   desenvolvedores.extra.com.br!
  43. 43. Exemplos  de     código  na     linguagem     do  developer   sendgrid.com/docs!
  44. 44. UX   (Developer  Experience)   DX  
  45. 45. 8Self-­‐Service  
  46. 46. Sign-­‐up  e  Tokens  de   acesso  automáZcos   stripe.com/docs!
  47. 47. REST  Console  ou     Sandbox  /  Playgroung   dev.transparencia.org.br!
  48. 48. 9Confiabilidade  
  49. 49. Confiabilidade  Bugs   Problemas  de   Performance   Indisponibilidade   Mudanças     (não-­‐planejadas)   Falta  de   Suporte  
  50. 50. www.sensedia.com/br! Trace  de  calls,   Monitoramento,   Rate  LimiZng  e   Alertas  
  51. 51. status.aws.amazon.com! Status  Page,   Release  Notes,   Blog  
  52. 52. Foruns  de  discussão   e  Abertura  de  Zckets   desenvolvedores.extra.com.br!
  53. 53. 10Divulgação  
  54. 54. Hackathon  &  Open  InnovaZon  
  55. 55. 1 Developers  Cadastrados:  800+         2 Apps  Criadas:  300+         3 Tráfego:  20M  calls  /  15  dias         4 Eleições  mais  transparentes!    
  56. 56. The  Power  of  Open  
  57. 57. The  Power  of  Open   hRps://www.youtube.com/watch?v=7r7QpIDEI_o  
  58. 58. 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  
  59. 59. Kleber  Bacili   kleber.bacili@sensedia.com   @kleberbacili   www.slideshare.net/kleberbacili/   Design  de  APIs  RESTful     –  Seguras,  Escaláveis  e  Interoperáveis  –  

×