Limites de Requisições
Visão Geral
O Storefront API utiliza o método de Leaky Bucket para limitar requisições, garantindo estabilidade e evitando sobrecarga na plataforma.
Para manter o bom desempenho e evitar a interrupção de serviços, é essencial que as requisições incluam o IP do usuário final no header X-Forwarded-For quando feitas pelo servidor.
Método de limite de requisições (Leaky Bucket)
O método Leaky Bucket funciona como uma "caixa", que pode receber um número de requisições dentro de um período. Se muitas requisições são feitas em um curto espaço de tempo, a "caixa" enche e começa a "vazar" (ou seja, a rejeitar) requisições.
- Intervalo mínimo de requisições: 0.5 segundos por IP
- Limite de tempo: 120 segundos por IP
Nota: Cada IP único recebe uma "cota" de requisições por intervalo. Por isso, para distribuições mais eficientes de requisições, é importante identificar o IP do usuário final em cada chamada, especialmente quando o código do site roda em um servidor compartilhado.
Por que o IP do Usuário Final é Essencial?
- Distribuição de Carga: Especificando o IP do usuário final, cada visitante do site pode ser tratado de forma independente, reduzindo a chance de alcançar o limite de requisições no servidor compartilhado.
- Desempenho e Escalabilidade: Com o IP de cada usuário identificado, a API permite um fluxo mais alto de requisições e evita limitações desnecessárias, proporcionando uma experiência de usuário mais rápida e estável.
Benefícios para Performance e Escalabilidade
Ao seguir as instruções de inclusão do IP final, sua integração com a API terá os seguintes benefícios:
- Escalabilidade Aumentada: Cada usuário final recebe sua própria "cota" de requisições, evitando que o limite seja atingido de forma prematura.
- Experiência de Usuário Estável: O site evita bloqueios desnecessários, proporcionando uma navegação contínua e sem interrupções para os visitantes.
Caso o IP do usuário final não seja especificado, todas as requisições do servidor compartilham o mesmo limite, levando a uma experiência degradada ou até mesmo interrompida.
Mensagens de Erro e Como Interpretá-las
Se o limite de requisições for atingido, a API retornará uma resposta de erro indicando a situação. Abaixo estão algumas mensagens comuns:
- HTTP 429 Too Many Requests: Esse erro indica que o limite de requisições foi atingido. Verifique se o IP do usuário final está sendo enviado corretamente.
- Dicas para Resolução: Caso essa mensagem persista, revise a implementação do header X-Forwarded-For e garanta que cada usuário final está sendo identificado de forma única.
Melhores Práticas para Desenvolvimento de API
Aqui estão algumas melhores práticas para garantir uma integração eficiente com o Storefront API:
- Use o Cache quando Possível: Para endpoints que não exigem atualizações constantes, considere implementar cache para reduzir chamadas à API.
- Monitore a Quantidade de Requisições: Acompanhe o número de requisições feitas pelo servidor para otimizar o uso da API e identificar picos de carga.
- Distribua as Requisições por Usuário Final: Usar o X-Forwarded-For com o IP do usuário final ajuda a distribuir o limite de requisições e evita atingir o limite de forma precoce.
Perguntas Frequentes
Por que o Storefront API utiliza o método Leaky Bucket para limitar requisições?
Esse método garante uma proteção contra sobrecarga e melhora a estabilidade da API. Ele permite uma distribuição mais controlada de requisições, oferecendo uma experiência mais fluida ao usuário final.
O que acontece se eu não incluir o IP do usuário final no header X-Forwarded-For?
Sem o IP do usuário final, todas as requisições vindas do servidor compartilham o mesmo limite, o que leva ao atingimento precoce do limite e pode bloquear temporariamente o acesso para todos os usuários.
Como posso saber se estou atingindo o limite de requisições?
Ao atingir o limite, a API retornará um erro HTTP 429 (Too Many Requests). Nesse caso, revise a documentação e garanta que o X-Forwarded-For esteja configurado corretamente.
Updated about 1 month ago