Best Practices for API’s
A SIMPLE TO DO LIST FOR CLOUD API’S
James Whittaker - @docjamesw
“We are reducing the world to data”
Jhonathan S. Soares
• MVP Microsoft – Visual Studio
• MIE, MCP, MTA – Microsoft
• Scrum Master – PSM I e II
• Neo4j Top 50 & Graph Evangelist
• MongoDB Ambassador & Evangelist
• Lead Software Architech Vortx DTVM
• Coordena 4 comunidades em SP
Criar arquiteturas com
alcance global vem com
problemas de escala global
WEB STANDARDS
PERFORMANCE
USER FRIENDLY
SEGURANÇA
WEB STANTARDS
• Utilize o mesmo padrão de URI
• https://minhaapi.com.br/produto (Singular);
• https://minhaapi.com.br/clientes (Plural);
• https:// minhaapi.com.br/processosAdministrativos (Camel Case);
• https:// minhaapi.com.br/processos_judidicais (Snake Case).
WEB STANTARDS
• Evite adicionar na URI a operação a ser realizada
• https://minhaapi.com.br/produtos/cadastrar;
• https://minhaapi.com.br/clientes/10/excluir;
• http://minhaapi.com.br/vendas/34/atualizar.
WEB STANTARDS
• RESTful URLs e ações
• GET, POST, PUT, PATCH ou DELETE
• GET para listagem
• POST para criação
• PUT para atualização
• PATCH para atualização parcial
• DELETE para apagar
WEB STANTARDS
• Use HTTP Status Code
• As requisições RESTful devem sempre responder um HTTP Status Code,
conforme a ação executada.
• 2xx – Success
• 4xx – Client Error
• 5xx – Server Error
• Veja a lista com todos HTTP Status Codes: https://httpstatuses.com.
PERFORMANCE
• Reduza o tamanho da resposta - Compressão
• GZIP
• Deflare
• Brotli
• Reduza o tamanho da resposta – Remova campos desnecessários
• Campos nulos
• Campos não utilizados
PERFORMANCE
• Utilize banco de dados que vão lhe ajudar
• Json suport
• NoSQL
• Cache
• Redis
• Ferramentas de monitoramento
• NewRelic
• Application Insights
SEGURANÇA
• SSL rules
• Let’s encrypt
• Autenticação
• JWT
• Oauth 2
• OpenID
SEGURANÇA
• Disponibilidade
• Políticas de Rate Limiting
• Tamanho de payload
• IP filtering
• Validação de dados
• XSD
• Json Schema
• Injections
USER FRIENDLY
Uma API é praticamente a UI de um desenvolvedor e, assim como
qualquer UI, é importante ser pensada com cuidado para garantir a boa
experiência de quem a usa.
USER FRIENDLY
• Documentação em dia
• Swagger
• Wiki
• Versionamento
• V1
• Datas
• Formatação
• Pretty
Informações adicionais
• Já pensou em um API Gateway?
• Azure
• CA Tech
• Amazon
• Tyk
• WAF
• Akamai
• Azure
• Verison
• Testes
• Teste sua aplicação antes do usuário lhe informar que está com erro.
OBRIGADO!
https://codigosimples.net

Api todo list

  • 1.
    Best Practices forAPI’s A SIMPLE TO DO LIST FOR CLOUD API’S
  • 2.
    James Whittaker -@docjamesw “We are reducing the world to data”
  • 3.
    Jhonathan S. Soares •MVP Microsoft – Visual Studio • MIE, MCP, MTA – Microsoft • Scrum Master – PSM I e II • Neo4j Top 50 & Graph Evangelist • MongoDB Ambassador & Evangelist • Lead Software Architech Vortx DTVM • Coordena 4 comunidades em SP
  • 4.
    Criar arquiteturas com alcanceglobal vem com problemas de escala global WEB STANDARDS PERFORMANCE USER FRIENDLY SEGURANÇA
  • 5.
    WEB STANTARDS • Utilizeo mesmo padrão de URI • https://minhaapi.com.br/produto (Singular); • https://minhaapi.com.br/clientes (Plural); • https:// minhaapi.com.br/processosAdministrativos (Camel Case); • https:// minhaapi.com.br/processos_judidicais (Snake Case).
  • 6.
    WEB STANTARDS • Eviteadicionar na URI a operação a ser realizada • https://minhaapi.com.br/produtos/cadastrar; • https://minhaapi.com.br/clientes/10/excluir; • http://minhaapi.com.br/vendas/34/atualizar.
  • 7.
    WEB STANTARDS • RESTfulURLs e ações • GET, POST, PUT, PATCH ou DELETE • GET para listagem • POST para criação • PUT para atualização • PATCH para atualização parcial • DELETE para apagar
  • 8.
    WEB STANTARDS • UseHTTP Status Code • As requisições RESTful devem sempre responder um HTTP Status Code, conforme a ação executada. • 2xx – Success • 4xx – Client Error • 5xx – Server Error • Veja a lista com todos HTTP Status Codes: https://httpstatuses.com.
  • 9.
    PERFORMANCE • Reduza otamanho da resposta - Compressão • GZIP • Deflare • Brotli • Reduza o tamanho da resposta – Remova campos desnecessários • Campos nulos • Campos não utilizados
  • 10.
    PERFORMANCE • Utilize bancode dados que vão lhe ajudar • Json suport • NoSQL • Cache • Redis • Ferramentas de monitoramento • NewRelic • Application Insights
  • 11.
    SEGURANÇA • SSL rules •Let’s encrypt • Autenticação • JWT • Oauth 2 • OpenID
  • 12.
    SEGURANÇA • Disponibilidade • Políticasde Rate Limiting • Tamanho de payload • IP filtering • Validação de dados • XSD • Json Schema • Injections
  • 13.
    USER FRIENDLY Uma APIé praticamente a UI de um desenvolvedor e, assim como qualquer UI, é importante ser pensada com cuidado para garantir a boa experiência de quem a usa.
  • 14.
    USER FRIENDLY • Documentaçãoem dia • Swagger • Wiki • Versionamento • V1 • Datas • Formatação • Pretty
  • 15.
    Informações adicionais • Jápensou em um API Gateway? • Azure • CA Tech • Amazon • Tyk • WAF • Akamai • Azure • Verison • Testes • Teste sua aplicação antes do usuário lhe informar que está com erro.
  • 16.