Evitar sondeos
Debes suscribirte a eventos de webhook en lugar de sondear la API para obtener datos. Esto ayudará a que la integración permanezca dentro del límite de frecuencia de API. Para más información, consulta AUTOTITLE.
Realizar solicitudes autenticadas
Las solicitudes autenticadas tienen una limitación de volumen principal mayor que las solicitudes no autenticadas. Para evitar superar la limitación de volumen, debes realizar solicitudes autenticadas. Para más información, consulta AUTOTITLE.
Evitar solicitudes simultáneas
Para evitar superar las limitaciones de volumen secundarias, debes realizar solicitudes en serie en lugar de simultáneas. Para ello, puedes implementar un sistema de colas para las solicitudes.
Pausar entre solicitudes de cambio
Si estás realizando una gran cantidad de , , o solicitudes, espera al menos un segundo entre una solicitud y otra. Esto te ayudará a evitar los límites de tasa secundarios.
Manejar adecuadamente los errores de límites de tasa
Si recibe un error de limitación de volumen, debe dejar de realizar solicitudes temporalmente según estas directrices:
- Si el encabezado de respuesta está presente, no debes reintentar la solicitud hasta que hayan transcurrido los segundos indicados.
- Si el encabezado es , no realice otra solicitud hasta después de la hora especificada en el encabezado . El encabezado está en segundos de época UTC.
- De lo contrario, espere al menos un minuto antes de volver a intentarlo. Si la solicitud sigue fallando debido a un límite de tasa secundaria, espere un período de tiempo que crezca exponencialmente entre los reintentos y arroje un error después de un número específico de reintentos.
Continuar realizando solicitudes cuando tiene un límite de solicitudes puede dar lugar a la desactivación de su integración.
Seguir redireccionamientos
La API REST de GitHub usa el redireccionamiento HTTP cuando corresponda. Debes asumir que cualquier solicitud podría resultar en un redireccionamiento. La recepción de un redireccionamiento HTTP no es un error y debes seguir esa redirección.
Un código de estado indica un redireccionamiento permanente. Debes repetir la solicitud en la dirección URL especificada por el encabezado . Además, debes actualizar el código para usar esta dirección URL para futuras solicitudes.
Un código de estado "A" o "B" indica un redireccionamiento temporal. Debes repetir la solicitud en la dirección URL especificada por el encabezado . Sin embargo, no debes actualizar el código para usar esta dirección URL para futuras solicitudes.
Pueden utilizarse otros códigos de estado de redirección de acuerdo con las especificaciones HTTP.
No analices manualmente las direcciones URL
Muchos puntos de conexión de API entregan valores de dirección URL para los campos del cuerpo de la respuesta. No debes intentar analizar estas direcciones URL ni predecir la estructura de direcciones URL futuras. Esto puede hacer que la integración se interrumpa si GitHub cambia la estructura de la dirección URL en el futuro. En su lugar, debes buscar un campo que contenga la información que necesitas. Por ejemplo, el endpoint para crear una incidencia devuelve un campo con un valor como y un campo con un valor como . Si necesitas saber el número del problema, usa el campo en lugar de analizar el campo .
Del mismo modo, no debes intentar construir manualmente consultas de paginación. En su lugar, debes usar los encabezados de vínculo para determinar qué páginas de resultados puedes solicitar. Para más información, consulta AUTOTITLE.
Usa solicitudes condicionales si procede
La mayoría de los puntos de conexión entregan un encabezado y muchos puntos de conexión entregan un encabezado . Puedes usar los valores de estos encabezados para realizar solicitudes condicionales. Si la respuesta no ha cambiado, recibirás una respuesta . La realización de una solicitud condicional no cuenta para el límite de frecuencia principal si se devuelve una respuesta y la solicitud se realizó correctamente autorizada con una cabecera.
Por ejemplo, si una solicitud anterior entregó un valor de encabezado de , puedes usar el encabezado en una solicitud futura:
curl -H "Authorization: Bearer YOUR-TOKEN" https://api.github.com/meta --include --header 'if-none-match: "644b5b0155e6404a9cc4bd9d8b1ae730"'
Por ejemplo, si una solicitud anterior entregó un valor de encabezado de , puedes usar el encabezado en una solicitud futura:
curl -H "Authorization: Bearer YOUR-TOKEN" https://api.github.com/repos/github/docs --include --header 'if-modified-since: Wed, 25 Oct 2023 19:17:59 GMT'
No se admiten solicitudes condicionales para métodos no seguros, como , , y , a menos que se indique lo contrario en la documentación de un punto de conexión específico.
No omitas errores
No debes omitir los códigos de error y repetidos. En su lugar, debes asegurarte de que estás interactuando correctamente con la API. Por ejemplo, si un punto de conexión solicita una cadena y estás enviando un valor numérico, vas a recibir un error de validación. De forma similar, intentar acceder a un punto de conexión inexistente o no autorizado dará como resultado un error .
El ignorar los errores de validación constantes a propóstio podría resultar en la suspensión de tu app por abuso.
Información adicional
- AUTOTITLE
- AUTOTITLE