Guia de quotas e limites de tarifas

A FedEx recebe muitos milhares de pedidos de API todos os dias. Utilizamos três mecanismos de limitação para gerir esse grande volume. Existem quotas, limites de tarifas e limites para alocar os recursos da FedEx de forma eficaz e eficiente.

As quotas são definidas por organização e por projeto de API.

 

Quotas por organização

A quota de transação corresponde ao número máximo de pedidos da API permitidos por uma organização num dia. Isto significa que os consumidores da API devem considerar o número total de pedidos da API iniciados para todos os projetos numa única organização. Cada pedido é contabilizado igualmente, independentemente do volume de dados devolvidos na resposta da API FedEx.

Exemplo: uma organização tem uma quota de 500 000 pedidos da API por dia. Se uma organização atingir os 500 000 pedidos enviados nas primeiras horas do dia, terá atingido a respetiva quota. Para o resto do dia, será devolvido um código de erro "429 – Too many requests – Daily transaction quota exceeded. Retry after 12:00AM GMT" (Demasiados pedidos – quota de transação diária excedida. Tente novamente após as 00:00 GMT) para cada pedido até ao próximo dia

 

Quotas por projeto de API

Esta quota é aplicada em dois níveis diferentes: projeto e funcionalidade.

O que queremos dizer com funcionalidades?

Cada API é agrupada pelas funcionalidades fornecidas. Cada grupo de funcionalidades é um conjunto de um ou mais pontos finais. Por exemplo, a funcionalidade API de rastreio tem 6 pontos finais de API, enquanto a funcionalidade Validação de endereços tem apenas 1 ponto final de API.

O limite de quotas Por funcionalidade por projeto (PCPP) predefinido para a funcionalidade de rastreio é de 100 mil pedidos por dia. Isso significa que quando o tráfego de qualquer um dos projetos numa organização para qualquer um dos 6 pontos finais na funcionalidade Rastreio excede este limite, iremos enviar-lhe um erro "429 «Too many requests»" (Demasiados pedidos) até ao final do dia. Isto aplica-se a todos os pedidos de rastreio subsequentes para qualquer um dos 6 pontos finais

Exemplo: se um projeto tiver um limite de 100 mil por funcionalidade de rastreio (com 6 pontos finais), o número total de transações para todos os 6 pontos finais será contabilizado para o limite de 100 mil. Se o seu projeto exceder esse limite, irá receber para as transações de rastreio subsequentes um código de erro de "429 – Too many requests – Daily transaction quota exceeded" (Demasiados pedidos – quota de transação diária excedida) para o resto do dia após as 00:00 GMT.

 

Limites de tarifas

Cada projeto tem um limite de tarifas de transação de 1400 transações por 10 segundos. As restrições de limitação aplicam-se se as transações excederem este limite durante cada período de 10 segundos.

Se este limite for atingido nos primeiros segundos, as transações enviadas nos segundos restantes desse período de 10 segundos serão limitadas. Durante este período de limitação, será devolvido um código de erro "429 – Too many requests" (Demasiados pedidos).

Se a FedEx receber 1400 pedidos nos primeiros 2 segundos, as transações seguintes serão limitadas durante os próximos 8 segundos e será devolvida uma mensagem de erro "429 – Too many requests – "We have received too many requests in a short duration. Please wait a while to try again" (Demasiados pedidos – demasiados pedidos recebidos num curto período. Aguarde e tente novamente)

Após 10 segundos, as restrições de limitação serão levantadas e outro contador começará a rastrear o número de pedidos durante os próximos 10 segundos.

 

Limites

Os limites aplicam-se ao nível do endereço IP para tornar o processo de autorização da API FedEx resiliente. Este mecanismo só é aplicável ao serviço de geração de token Auth. Existem dois tipos de limites:

  1. Limite máximo: 3 acessos por segundo, continuamente, durante um período de 5 segundos
  2. Limite médio: 1 acesso por segundo, continuamente, durante um período de 2 minutos
  • Assim que um endereço IP público violar qualquer um destes limites, será penalizado durante 10 minutos e todos os outros pedidos durante este período de 10 minutos receberão um código de estado "403 Forbidden" (Proibido)
  • Se os consumidores da API continuarem a violar quaisquer limites durante este tempo de penalização, o tempo de penalização será prolongado. Os utilizadores da API podem terminar o tempo de penalização se não violarem o limite durante os próximos 10 minutos
  • Os mecanismos de limite baseiam-se no endereço IP público de um utilizador. Se um utilizador configurar 10 instâncias de máquina virtual num IP público, todos os pedidos desse endereço IP vão contar para o limite

 

Gestão de tráfego

Cada um destes três mecanismos aborda um aspeto distinto da gestão de tráfego:

  • Quotas aplicadas ao nível da organização: o tráfego combinado gerado por todas as API numa organização estará sujeito a esta quota de transação.

  • Quotas aplicadas ao nível do projeto: o tráfego combinado gerado por uma funcionalidade da API num projeto está sujeito a esta quota de transação.

  • Limites de tarifas aplicados ao nível do projeto: o tráfego combinado gerado por todas as API num projeto estará sujeito a este limite de tarifas.

  • Os limites são aplicados ao nível do endereço IP.

Nota: a FedEx pode reduzir os limites dos mecanismos de limitação mencionados acima para impedir uso indevido, uso excessivo e abuso. A FedEx reserva-se o direito de alterar a alocação sem aviso prévio para manter o acesso equitativo entre os consumidores da API e alocar os recursos da FedEx de forma eficaz e eficiente.


Perguntas frequentes

Todas as transações da API de uma organização de diferentes projetos são contabilizadas para a quota?
A quota é aplicada ao nível da organização. Numa organização, pode ter um ou mais projetos e em cada projeto, pode ter uma ou mais API. Como resultado, o tráfego combinado e gerado por todas as API de diferentes projetos, que se encontram numa organização, é contabilizado para uma quota diária.

Se for devolvido o mesmo erro 429 para uma violação de quota e uma violação de limite de tarifas, como posso identificar que tipo de violação cometi?
Pode identificar a violação ao ler a mensagem de erro.

 

VIOLAÇÃO MENSAGEM DE ERRO
Por quotas da organização Too many requests. Daily transaction quota exceeded. Retry after 12:00AM GMT (Demasiados pedidos. Quota de transação diária excedida. Tente novamente após as 00:00 GMT)
Por quotas dos projetos de API Too many requests: Per project daily quota exceeded. Retry after 12:00 AM GMT (Demasiados pedidos: quota diária por projeto excedida. Tente novamente após as 00:00 GMT)
Limite de tarifas Too many requests: Rate limit threshold exceeded. Retry after 10 seconds (Demasiados pedidos: limite de tarifas excedido. Tente novamente após 10 segundos)
   

Qual é a solução para uma violação de limite?
Um token OAuth é válido por uma hora. Sugerimos que os consumidores da API utilizem este token durante essa hora inteira e depois peçam um novo token quando o anterior expirar.

Qual é um exemplo de quando um limite é ultrapassado?
5 segundos e 2 minutos são períodos de observação para o limite máximo e limite médio, respetivamente. Durante estes períodos, se algum destes limites for violado a partir de um endereço IP, é imposta a penalização de limite.

Exemplo: se um endereço IP tiver 3 acessos por segundo durante 2 segundos, seguido de um número de acessos abaixo de 3 acessos por segundo, o limite máximo não foi violado. No entanto, se um endereço IP tiver 3 acessos por segundo continuamente durante 5 segundos, seguido de 15 acessos em 5 segundos, o limite máximo de 14 acessos em 5 segundos foi violado.