Para ter acesso ao ambiente de produção é necessário realizar o tratamento do Throttling na sua aplicação.
O que significa?
O Mercos aplica um limite global de requisições por conta, considerando as chamadas realizadas à API independentemente da entidade ou rota acessada. Esse controle evita sobrecarga do sistema e garante o processamento adequado das requisições.
Na prática
O mecanismo de throttling ocorre quando você tenta enviar uma requisição e recebe um status_code 429, com o seguinte retorno no body:
Exemplo de resposta. Os valores apresentados são ilustrativos e podem variar a cada resposta
429.
{
"tempo_ate_permitir_novamente": 5,
"limite_de_requisicoes": 1
}Ao receber um erro 429, sua aplicação deve:
- Ler o campo
tempo_ate_permitir_novamenteno body da resposta. - Aguardar o tempo informado no campo
tempo_ate_permitir_novamente, em segundos. - Somente após esse período, retomar o envio das requisições.
- Repetir esse processo a cada novo erro 429, sempre utilizando o valor retornado na resposta mais recente.
O tempo de espera é dinâmico e deve ser obtido a cada resposta 429 por meio do campo tempo_ate_permitir_novamente. Esse valor pode variar entre as requisições e deve ser sempre respeitado. A aplicação não deve utilizar um tempo de espera fixo ou previamente definido.
ImportanteEsse controle deve ser aplicado a todas as rotas, pois o limite é global e contabilizado por conta, independentemente da entidade requisitada. Ou seja, qualquer requisição realizada pela conta será contabilizada no limite, independentemente da rota ou entidade acessada.
O campo limite_de_requisicoes, presente no corpo da resposta com erro 429, indica a quantidade máxima de requisições permitida dentro do intervalo de tempo definido. Esse valor deve ser considerado no controle das requisições da aplicação, mas não substitui a tratativa dinâmica do erro 429: sempre que um 429 for recebido, a aplicação deve utilizar o valor mais recente de tempo_ate_permitir_novamente para determinar o tempo de espera antes de retomar o envio.
