SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

BaaS seguros com Firebase
BaaS seguros com FirebaseBaaS seguros com Firebase
BaaS seguros com Firebase
Andre Baltieri
 
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
Renato Groff
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendly
Ricardo Faria
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
Paulino Michelazzo
 
Zabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensourceZabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensource
Filipe Paternot
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Patricia Ladislau Silva
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
Aécio Pires
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
Aécio Pires
 
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Jeronimo Zucco
 
Desenvolvendo APIs com WebAPI
Desenvolvendo APIs com WebAPIDesenvolvendo APIs com WebAPI
Desenvolvendo APIs com WebAPI
Andre Baltieri
 
Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2
Jose Augusto Carvalho
 
Introdução ao CakePHP
Introdução ao CakePHPIntrodução ao CakePHP
Introdução ao CakePHP
Rafael Cichini
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
Aécio Pires
 
Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012
Jeronimo Zucco
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
Bruno Luiz Pereira da Silva
 
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SPMonitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
Zabbix BR
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbook
Giovane Liberato
 
Aplicações Distribuídas com .NET e Apache Kafka
Aplicações Distribuídas com .NET e Apache KafkaAplicações Distribuídas com .NET e Apache Kafka
Aplicações Distribuídas com .NET e Apache Kafka
Gustavo Bellini Bigardi
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Renato Groffe
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Renato Groffe
 

Mais procurados (20)

BaaS seguros com Firebase
BaaS seguros com FirebaseBaaS seguros com Firebase
BaaS seguros com Firebase
 
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
Boas práticas de segurança no acesso a dados em aplicações Web - SQLSaturday ...
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendly
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Zabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensourceZabbix meetup RJ: Integrações e opensource
Zabbix meetup RJ: Integrações e opensource
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
 
Desenvolvendo APIs com WebAPI
Desenvolvendo APIs com WebAPIDesenvolvendo APIs com WebAPI
Desenvolvendo APIs com WebAPI
 
Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2
 
Introdução ao CakePHP
Introdução ao CakePHPIntrodução ao CakePHP
Introdução ao CakePHP
 
Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?Zabbix 2.0: o que ele pode monitorar na sua rede?
Zabbix 2.0: o que ele pode monitorar na sua rede?
 
Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SPMonitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitoramento e controle em suas mãos - - 2º ZABBIX MEETUP DO INTERIOR-SP
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbook
 
Aplicações Distribuídas com .NET e Apache Kafka
Aplicações Distribuídas com .NET e Apache KafkaAplicações Distribuídas com .NET e Apache Kafka
Aplicações Distribuídas com .NET e Apache Kafka
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 

Semelhante a Api todo list

Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Clavis Segurança da Informação
 
Certificações Microsoft e o Mercado de Trabalho
Certificações Microsoft e o Mercado de TrabalhoCertificações Microsoft e o Mercado de Trabalho
Certificações Microsoft e o Mercado de Trabalho
Joel Rodrigues
 
Sonarqube
SonarqubeSonarqube
Sonarqube
CDS
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
Magno Logan
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Rafael Schettino
 
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
Dirceu Resende
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
Renato Groff
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
Alvaro Viebrantz
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?
akamud
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
David Robert Camargo de Campos
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
Tiago Antônio da Silva
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
Edgar Silva
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
Maykel dos Santos Braz, ZCE
 
SonarQube
SonarQubeSonarQube
SonarQube
CDS
 
Microsserviços com Serverles e Azure Functions
Microsserviços com Serverles e Azure FunctionsMicrosserviços com Serverles e Azure Functions
Microsserviços com Serverles e Azure Functions
Gustavo Bellini Bigardi
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
José Roberto Araújo
 
Application Insights
Application InsightsApplication Insights
Application Insights
CDS
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
Daniel Checchia
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
Leandro Silva
 

Semelhante a Api todo list (20)

Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Certificações Microsoft e o Mercado de Trabalho
Certificações Microsoft e o Mercado de TrabalhoCertificações Microsoft e o Mercado de Trabalho
Certificações Microsoft e o Mercado de Trabalho
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
 
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Microsserviços com Serverles e Azure Functions
Microsserviços com Serverles e Azure FunctionsMicrosserviços com Serverles e Azure Functions
Microsserviços com Serverles e Azure Functions
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 

Mais de Jhonathan de Souza Soares

Link Prediction with Neo4j
Link Prediction with Neo4jLink Prediction with Neo4j
Link Prediction with Neo4j
Jhonathan de Souza Soares
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
Jhonathan de Souza Soares
 
Azure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .NetAzure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .Net
Jhonathan de Souza Soares
 
Azure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de softwareAzure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de software
Jhonathan de Souza Soares
 
Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones
Jhonathan de Souza Soares
 
CosmosDB from zero2hero
CosmosDB from zero2heroCosmosDB from zero2hero
CosmosDB from zero2hero
Jhonathan de Souza Soares
 
NoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era ServelessNoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era Serveless
Jhonathan de Souza Soares
 
Introdução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net coreIntrodução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net core
Jhonathan de Souza Soares
 
NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB
Jhonathan de Souza Soares
 
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Jhonathan de Souza Soares
 
Criando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4jCriando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4j
Jhonathan de Souza Soares
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
Jhonathan de Souza Soares
 
Sem limites com NoSQL
Sem limites com NoSQLSem limites com NoSQL
Sem limites com NoSQL
Jhonathan de Souza Soares
 
Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of ThronesGraph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones
Jhonathan de Souza Soares
 
Neo4j + nodejs
Neo4j + nodejsNeo4j + nodejs
Criando sistemas de recomendação com neo4j
Criando sistemas de recomendação com  neo4jCriando sistemas de recomendação com  neo4j
Criando sistemas de recomendação com neo4j
Jhonathan de Souza Soares
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Jhonathan de Souza Soares
 
Migrando dados do SQL para Neo4j - TDC
Migrando dados do SQL para Neo4j  - TDCMigrando dados do SQL para Neo4j  - TDC
Migrando dados do SQL para Neo4j - TDC
Jhonathan de Souza Soares
 
Introdução ao neo4j
Introdução ao neo4jIntrodução ao neo4j
Introdução ao neo4j
Jhonathan de Souza Soares
 

Mais de Jhonathan de Souza Soares (19)

Link Prediction with Neo4j
Link Prediction with Neo4jLink Prediction with Neo4j
Link Prediction with Neo4j
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
 
Azure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .NetAzure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .Net
 
Azure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de softwareAzure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de software
 
Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones
 
CosmosDB from zero2hero
CosmosDB from zero2heroCosmosDB from zero2hero
CosmosDB from zero2hero
 
NoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era ServelessNoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era Serveless
 
Introdução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net coreIntrodução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net core
 
NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB
 
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
 
Criando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4jCriando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4j
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
Sem limites com NoSQL
Sem limites com NoSQLSem limites com NoSQL
Sem limites com NoSQL
 
Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of ThronesGraph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones
 
Neo4j + nodejs
Neo4j + nodejsNeo4j + nodejs
Neo4j + nodejs
 
Criando sistemas de recomendação com neo4j
Criando sistemas de recomendação com  neo4jCriando sistemas de recomendação com  neo4j
Criando sistemas de recomendação com neo4j
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSet
 
Migrando dados do SQL para Neo4j - TDC
Migrando dados do SQL para Neo4j  - TDCMigrando dados do SQL para Neo4j  - TDC
Migrando dados do SQL para Neo4j - TDC
 
Introdução ao neo4j
Introdução ao neo4jIntrodução ao neo4j
Introdução ao neo4j
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (6)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

Api todo list

  • 1. Best Practices for API’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 alcance global vem com problemas de escala global WEB STANDARDS PERFORMANCE USER FRIENDLY SEGURANÇA
  • 5. 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).
  • 6. 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.
  • 7. 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
  • 8. 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.
  • 9. 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
  • 10. PERFORMANCE • Utilize banco de 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íticas de 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ção em 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.