Llamadas API: reducir trabajo y controlar reintentos

En resumen

Una API eficiente evita intercambios innecesarios sin perder actualidad ni exactitud. El número de llamadas, los bytes y la duración del recorrido son medidas diferentes.

Pasillo seguro de servidores y redes sin personal Ilustración · escena ficticia
En este artículo

Comparar el mismo recorrido

Ejemplo ficticio con kilobytes decimales: 100 llamadas de 100 kB frente a 20 de 50 kB. El tráfico baja de 10000 a 1000 kB, un 90 %. Esto no demuestra una reducción equivalente de latencia. Solo se cuentan los cuerpos de respuesta, sin solicitudes ni cabeceras.

Medida ficticiaInicialCandidato
Llamadas10020
Volumen por respuesta100 kB50 kB
Tráfico total10000 kB1000 kB
Duración del recorridoMedirMedir

Reducir antes de paralelizar

  • Solicite solo los campos necesarios y respete la paginación documentada. Los lotes necesitan límites y gestión de resultados parciales; una página mayor no siempre es más rápida.
  • Reutilice conexiones y respuestas cuando el contexto y la frescura lo permitan. Limite la concurrencia y mida colas y trabajo del servidor.
  • Defina plazo total y máximo de intentos. Espacie los reintentos transitorios con una parte aleatoria y compruebe qué capas ya reintentan.

Evitar repetir una acción completada

Un timeout del cliente no demuestra cancelación en el servidor. Antes de repetir una creación o pago, consulte su estado y el mecanismo de idempotencia del proveedor. Compare duración, errores y exactitud con carga representativa.

Fuentes primarias

Inspeccionar el trabajo detrás de una respuesta de API.

Una sola consulta GraphQL puede desencadenar muchas llamadas posteriores. La latencia visible para el cliente puede ocultar el costo de los resolutores, las listas y las relaciones recorridas.

  • Rastrear una operación desde el cliente hasta los servicios posteriores.
  • Comparar el costo del campo con el volumen realmente útil.
  • Vincular listas y consultas repetidas antes del almacenamiento en caché.

Fuente primaria: OWASP — GraphQL Cheat Sheet. Método relacionado: consultar la guía práctica.

Retry-After: espera, presupuesto y reintentos

Las notas detalladas de esta edición están disponibles en inglés.

Reducing API calls includes controlling repetition

An API optimisation should count attempts reaching the dependency rather than only requests initiated by the screen.

  • Trace SDK and proxy retries under one logical identifier.
  • Avoid shortening server instructions merely to fit a budget.
  • Verify an uncertain write’s state before creating a new intention.

Explore Retry-After and the retry model →

References reviewed · RFC 9110 · §9.2.2, §10.2.3 · RFC 6585 · §4 · AWS