API:Etiquette/es

Esta página contiene las buenas prácticas que tendrías que seguir cuándo utilices el API.

Comportamiento


Límite de petición
No hay un límite estricto y rápido para las solicitudes de lectura, pero sea considerado e intente no eliminar un sitio. La mayoría de los administradores de sistemas se reservan el derecho de bloquearlo sin ceremonias si pones en peligro la estabilidad de su sitio.

Haciendo tus solicitudes en serie en lugar de en paralelo, esperando a que finalice una solicitud antes de enviar una nueva solicitud, debería resultar en una tasa de solicitud segura. También es recomendado que solicites varios artículos en una sola solicitud:


 * Usar el carácter de canalización siempre que sea posible, por ejemplo , en lugar de hacer una nueva solicitud para cada título.
 * Utilizando un en vez de hacer una petición para cada resultado de otra petición.


 * Use la compresión GZip al realizar llamadas API configurando  para reducir el uso de ancho de banda.

Las solicitudes que realizan en ediciones, modifican el estado o de otro modo no son solicitudes de solo lectura, están sujetas a limitación de velocidad. El límite de tarifa exacto que se aplica puede depender del tipo de acción, sus derechos de usuario y la configuración del sitio web al que realiza la solicitud. Los límites que se te aplican a ti se pueden determinar accediendo al punto final de la API de action=query&meta=userinfo&uiprop=ratelimits.

Cuando alcances el límite de tasa de solicitud, recibirás un con el código de error. Cuando encuentres este error, puedes volver a intentar esa solicitud, sin embargo, debe aumentar el tiempo entre solicitudes posteriores. Una estrategia común para esto es Retroceso exponencial.



Análisis de revisiones
Si bien es posible consultar los resultados de un número de revisión específico utilizando el parámetro, esta es una operación costosa para los servidores. Para recuperar una revisión específica, use el parámetro. Por ejemplo:



El parámetro maxlag
Si tu tarea no es interactiva, es decir, un usuario no está esperando el resultado, debes usar el parámetro. El valor del parámetro  debe ser un número entero de segundos. Por ejemplo:

Esto evitará que su tarea se ejecute cuando la carga en los servidores sea alta. Los valores más altos significan comportamiento más agresivo, los valores más bajos son mejores.

Ver para más detalles.



El encabezado User-Agent
Se recomienda establecer un encabezado de agente de usuario descriptivo. Para hacerlo, usa. Por ejemplo en PHP:

No simplemente copies el agente-de-usuario de un navegador web popular. Esto garantiza que si surge un problema, es fácil rastrear dónde se origina.

Si estás llamando a la API desde JavaScript basado en el navegador, es posible que no puedas influir en el encabezado de, dependiendo del navegador. Para evitar esto, usa el encabezamiento.

Consulta m:User-Agent_policy para más detalles.



Formatos de dato
Todos los nuevos usuarios de API. Ver para más detalles.

Rendimiento
Downloading data in bulk is not always extremely efficient using the Action API. On Wikimedia wikis, there are faster ways to get data in bulk, see m:Research:Data and wikitech:Portal:Data Services for more details.

Other notes
If your requests obtain data that can be cached for a while, you should take steps to cache it, so you don't request the same data over and over again. Some clients may be able to cache data themselves, but for others (particularly JavaScript clients), this is not possible.

Per the HTTP specification, POST requests cannot be cached. Therefore, whenever you're reading data from the web service API, you should use GET requests, not POST.

Also note that a request cannot be served from cache unless the URL is exactly the same. If you make a request for, and cache the result, then a request for   will not go through the cache — even though MediaWiki returns the same data!

You should take care to normalize the URLs you send to the MediaWiki web service, so that slightly different user input won't cause you to waste time on unnecessary HTTP requests. You can normalize a list of page titles by removing duplicates and sorting the titles alphabetically. Similar techniques will work for other kinds of data.



Véase también

 * - La guía de inicio rápida.