Uno de los códigos de estado HTTP adicionales ( RFC6585 ) es
¿Dónde puedo encontrar ejemplos de encabezados de respuesta HTTP con limitación de velocidad de API HTTP / REST que sean útiles con este estado de respuesta HTTP?
Uno de los códigos de estado HTTP adicionales ( RFC6585 ) es
¿Dónde puedo encontrar ejemplos de encabezados de respuesta HTTP con limitación de velocidad de API HTTP / REST que sean útiles con este estado de respuesta HTTP?
Respuestas:
A continuación, se muestran algunos ejemplos de encabezados de respuesta HTTP que limitan la velocidad de la API HTTP. Tomado de cuatro API REST comunes: Github, Vimeo, Twitter e Imgur:
#=============================#=============================================#
# HTTP Header # Description #
#=============================#=============================================#
| X-RateLimit-Limit | Request limit per hour |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining | The number of requests left for the time |
| | window |
+-----------------------------+---------------------------------------------+
#=============================#=============================================#
# HTTP Header # Description #
#=============================#=============================================#
| X-RateLimit-Limit | Request limit per day / per 5 minutes |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining | The number of requests left for the time |
| | window |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Reset | The remaining window before the rate limit |
| | resets in UTC epoch seconds |
+-----------------------------+---------------------------------------------+
Nota: Twitter usa encabezados con nombres similares a los de Vimeo, pero tiene otro guión en cada nombre.
#=============================#=============================================#
# HTTP Header # Description #
#=============================#=============================================#
| X-Rate-Limit-Limit | The rate limit ceiling for that given |
| | request |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Remaining | The number of requests left for the |
| | 15 minute window |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Reset | The remaining window before the rate limit |
| | resets in UTC epoch seconds |
+-----------------------------+---------------------------------------------+
#=============================#=============================================#
# HTTP Header # Description #
#=============================#=============================================#
| X-RateLimit-UserLimit | Total credits that can be allocated |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserRemaining | Total credits available |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserReset | Timestamp (unix epoch) for when the credits |
| | will be reset |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientLimit | Total credits that can be allocated for the |
| | application in a day |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientRemaining | Total credits remaining for the application |
| | in a day |
+-----------------------------+---------------------------------------------+
request
paquete: github.com/webjay/x-rate
Además de los encabezados específicos de la API, no olvide el encabezado estándar y humildeRetry-After
Los servidores envían el campo de encabezado "Retry-After" para indicar cuánto tiempo debe esperar el agente de usuario antes de realizar una solicitud de seguimiento ... El valor de este campo puede ser una fecha HTTP o un número de segundos de retraso después de recibir la respuesta.
El estándar hace recomendaciones adicionales específicas cuando se usa con un código de estado 503 o 3xx:
Cuando se envía con una respuesta 503 (Servicio no disponible), Reintentar después indica cuánto tiempo se espera que el servicio no esté disponible para el cliente. Cuando se envía con cualquier respuesta 3xx (redireccionamiento), Reintentar después indica el tiempo mínimo que se le pide al agente de usuario que espere antes de emitir la solicitud redirigida.
Retry-After
está destinado a ser utilizado con 503
o 30x
respuestas tools.ietf.org/html/rfc7231#section-7.1.3
response.headers["x-ratelimit-limit"]