Design APIs Restful, DevWeek Porto Alegre

353 visualizações

Publicada em

Apresentação sobre criação de APIs RESTful escaláveis e seguras feita no evento Developer Week Porto Alegre

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

Sem downloads
Visualizações
Visualizações totais
353
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Design APIs Restful, DevWeek Porto Alegre

  1. 1. Kleber Bacili kleber.bacili@sensedia.com @kleberbacili Design de APIs RESTful – Seguras, Escaláveis e Interoperáveis –
  2. 2. Kleber Bacili kleber.bacili@sensedia.com @kleberbacili
  3. 3. v  SOA, Microservices e APIs v  Projetos bacaníssimos v  Ferramentas sensacionais v  Headquarter em Campinas, escritórios em SP, Rio e EUA
  4. 4. As APIs estão por toda parte…
  5. 5. Startup BaLlefield 78%
  6. 6. The Internet of Things
  7. 7. Startups Battlefield 78%
  8. 8. Open API: Plataforma que permite que empresas parceiras criem novas soluções integradas ao banco (by Sensedia)
  9. 9. API Calls: +280% Outubro 2014/2015 @ Sensedia API Gateway
  10. 10. 10Dicas para a sua API ser um sucesso
  11. 11. Dica Zero!
  12. 12. Selecione a Tecnologia Adequada RESTSOAP vs.
  13. 13. Selecione a Tecnologia Adequada JSONXML vs.
  14. 14. and the winners are… REST + JSON
  15. 15. 1Proposta de Valor
  16. 16. “Você pode até passar batom num porco, mas ele conVnuará sendo um porco!”
  17. 17. 2Design RESTful
  18. 18. Coleção /pedidos! Resources Elemento /pedidos/{id}!
  19. 19. /getAccount! /getAllAccounts! /createDirectory! /updateGroupName! /findClientById! RPC?
  20. 20. VERBOS
  21. 21. GET /vendas/pedidos! POST /clientes/98W3G32K01/enderecos! {…} PUT /clientes/98W3G32K01/enderecos/1! {…} DELETE /users/98W3G32K01/photos! PATCH /users/98W3G32K01 ! {…}
  22. 22. 3Versionamento
  23. 23. THINGS CHANGE! v1 v2 v3 v4
  24. 24. 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
  25. 25. 4Error Handling
  26. 26. 200! 400! 500! Resultado OK Erro no Client Erro no Server
  27. 27. STATUS OK 200!
  28. 28. Mais informações? Vídeo do Webinar hAp://downloads.sensedia.com/webinar-design-de-apis-resIul
  29. 29. 5Segurança
  30. 30. v Acesso não autorizado v Ataques v Privacidade v Integridade v Disponibilidade
  31. 31. v Acesso não autorizado v Ataques v Privacidade v Integridade v Disponibilidade
  32. 32. Usuários Apps Basic HTTP OAuth2 OpenID Connect Estratégias de AutenVcação / Autorização App Token
  33. 33. Client Apps APIs Rate LimiVng Policy JSON Threat Policy Payload Size Policy IP Filtering Policy … API Gateway
  34. 34. Os Fundamentos da Segurança de APIs WEBINAR hAp://downloads.sensedia.com/webinar-seguranca-de-apis
  35. 35. 6Hypermedia
  36. 36. GET /items?q=macbook+air+new {! "results" : [ ! {! "id" : 123,! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! }! ]! } SEM Hypermedia HATEOAS = Hypermedia as the Engine of Applica;on State
  37. 37. 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" }! ]! }
  38. 38. 7Developers Portal
  39. 39. Docs incompletos, desatualizados, estáVcos e com PDFs de 100 páginas
  40. 40. Gemng Started www.twilio.com/docs!
  41. 41. desenvolvedores.cnova.com Documentação InteraVva
  42. 42. Exemplos de código na linguagem do developer sendgrid.com/docs!
  43. 43. UX (Developer Experience) DX
  44. 44. 8OVmizações
  45. 45. Caching Evite tráfego desnecessário Latência de rede Sobrecarga nos servidores
  46. 46. Filtros GET /vendas/v2/pedidos?_status=concluido! GET /pedidos/123AF15J?_fields=numero,data,valor! Busca com escopo (subconjuntos): Respostas parciais:
  47. 47. Paginação GET /pedidos?_offset=50&_limit=25! Recomendação: Outras opções: Linkedin: Instagram: ?start=50&count=25 ?min_id=3091&max_id=3245&count=25
  48. 48. 9Confiabilidade
  49. 49. Confiabilidade Bugs Problemas de Performance Indisponibilidade Mudanças (não-planejadas) Falta de Suporte
  50. 50. Trace de calls, Monitoramento, Rate LimiVng, Status Page e Alertas
  51. 51. 10Divulgação
  52. 52. Hackathon & Open InnovaVon
  53. 53. 1 Developers Cadastrados: 800+ 2 Apps Criadas: 300+ 3 Tráfego: 20M calls / 15 dias 4 Eleições mais transparentes!
  54. 54. Design RESTful 2 1 Proposta de Valor 3 Versionamento 4 Error Handling 5 Segurança 7 Developers Portal 6 Hypermedia 8 OVmizações 9 Confiabilidade 10 Divulgação
  55. 55. www.slideshare.net/kleberbacili/
  56. 56. Kleber Bacili kleber.bacili@sensedia.com @kleberbacili www.slideshare.net/kleberbacili/ Design de APIs RESTful – Seguras, Escaláveis e Interoperáveis –

×