API:Etiquette/pt-br

This page contains the best practices that should be followed when using the API.

Limite de solicitações
Não há limite rígido para as solicitações de leitura, mas pedimos que você seja atencioso para não desativar um site. A maioria dos administradores de sistema bloqueia sem cerimônia podendo colocar em risco a estabilidade do site.

Making your requests in series rather than in parallel, by waiting for one request to finish before sending a new request, should result in a safe request rate. It is also recommended that you ask for multiple items in one request by:


 * Using the pipe character whenever possible e.g. , instead of making a new request for each title.
 * Using a instead of making a request for each result from another request.


 * Use GZip compression when making API calls by setting  to reduce bandwidth usage.

Requests which make edits, modify state or otherwise are not read-only requests, are subject to rate limiting. The exact rate limit being applied might depend on the type of action, your user rights and the configuration of the website you are making the request to. The limits that apply to you can be determined by accessing the action=query&meta=userinfo&uiprop=ratelimits API endpoint.

When you hit the request rate limit you will receive a with the error code. When you encounter this error, you may retry that request, however you should increase the time between subsequent requests. A common strategy for this is Exponential backoff.

Análise de revisão
Embora seja possível consultar os resultados de um número de revisão específico, essa é uma operação dispendiosa para os servidores. Para recuperar uma revisão específica, use o parâmetro 'oldid', exemplo:

O parâmetro maxlag
Se a tarefa não for interativa (um usuário não aguarda um resultado), você deve usar o parâmetro maxlag. The value of the  parameter should be an integer number of seconds. For example:

Isso impedirá que sua tarefa seja executada quando a carga nos servidores for alta. Valores altos significam comportamento agressivo, valores menores são mais agradáveis.

See for more details.

Cabeçalho do Agente do Usuário
It is best practice to set a descriptive User Agent header. To do so, use. For example in PHP:

Não copie simplesmente o agente de usuário de um navegador da web (a menos que o seu cliente API seja um aplicativo JavaScript em execução no navegador web com uso do Ajax, caso em que não é possível modificar o agente de usuário). Isso garante que ao surgir um problema, será fácil rastrear o local de origem.

If you are calling the API from browser-based JavaScript, you may not be able to influence the  header, depending on the browser. To work around this, use the  header.

Veja API:Identificando o cliente e m:Política do agente de usuário para mais detalhes.

Data formats
All new API users. See for more details.

Performance
Se está tentando descobrir por que está obtendo resultados lentamente, tente para ajudá-lo sobre o desempenho em geral.

Se está achando que a leitura através da API, em vez de ler diretamente os bancos de dados, está diminuindo o desempenho do seu cliente, considere adicionar na Toolforge da Wikimedia.