Un probador de APIs online que funciona como curl. Elige el método, añade cabeceras y cuerpo, y mira el código de estado, el cuerpo de la respuesta y en qué se fue el tiempo, desde seis regiones de AWS a la vez.
Este es el comando curl que habrías escrito, en forma de formulario. Elige GET, POST, PUT, PATCH, DELETE, HEAD u OPTIONS, añade las cabeceras que espera la API, pega un cuerpo JSON o de texto en los métodos que lo admiten y envíalo. LoadFocus hace la petición desde sus propios servidores y te muestra exactamente lo que volvió: el código de estado, cada cabecera de respuesta, el cuerpo, el certificado SSL y un desglose de en qué se fue el tiempo. Nada que instalar y nada que registrar.
Una terminal muestra un resultado desde un solo lugar. Aquí, una petición GET, HEAD u OPTIONS se envía desde seis regiones de AWS al mismo tiempo, así que puedes ver si la API responde distinto en Tokio que en Virginia, que es lo que viven de verdad tus usuarios en Tokio. Las peticiones que cambian datos, es decir POST, PUT, PATCH y DELETE, se envían exactamente una vez, desde una región, porque una petición que crea o borra algo no debe repetirse seis veces en tu nombre.
La petición va a la dirección que introduces, con el método y las cabeceras que fijas, y el endpoint la trata como real. Ese es el sentido de la herramienta y también el motivo de su cuidado: una petición que cambia datos nunca se reintenta, y si agota el tiempo el resultado indica que el desenlace es desconocido en vez de fingir que falló, porque es muy posible que el servidor la haya procesado. Las redirecciones se informan, no se siguen. Los nombres de cabecera se validan, las cabeceras hop-by-hop se descartan, y tu cabecera Authorization se envía a la API que nombraste y nunca se escribe en ningún registro.
Una petición enviada a mano te dice que la API funciona ahora. La misma petición, enviada cada minuto desde más de 25 regiones con comprobaciones del código de estado y del cuerpo, te avisa en el momento en que deja de funcionar, antes de que lo haga un cliente. Eso es el monitor de API de LoadFocus, y su plan gratuito empieza exactamente con la petición que acabas de enviar.
Relacionado: API Monitoring · API Status Checker · curl to k6 · curl to JMeter · Free API load test
Una petición devuelve algo más que un código de estado. Estos son los valores que merece la pena leer:
Cómo respondió el servidor. 2xx es éxito, 3xx una redirección (informada, no seguida), 4xx significa que la petición fue rechazada, el recurso no existe o hace falta autenticación, 5xx significa que el servidor falló. Un 401 o 403 con las cabeceras correctas puestas suele indicar que el valor de la cabecera está mal, no la herramienta.
Lo que devolvió la API, mostrado como texto y formateado cuando es JSON. Los cuerpos grandes se cortan en 64 KB con una nota que lo indica, y las respuestas binarias como imágenes se informan por tamaño en vez de mostrarse. El cuerpo se muestra solo como texto, nunca se renderiza, así que una página que devuelva HTML no puede ejecutar nada aquí.
Content-Type, caché, CORS, contadores de límite de peticiones y la identificación del propio servidor. Cuando una API se comporta mal, la respuesta suele estar en una cabecera: un Content-Type equivocado, un Access-Control-Allow-Origin ausente o un X-RateLimit-Remaining a cero.
Cuánto tardó el servidor en empezar a responder una vez lista la conexión. Por debajo de 800 ms está bien para una API. Un TTFB lento con DNS y TLS rápidos significa que el trabajo está en el servidor: una consulta lenta, una caché fría o un backend saturado.
El coste de llegar al servidor antes incluso de enviar la petición. Un DNS alto apunta al resolutor o a un servidor autoritativo lento; un TLS alto apunta a la cadena de certificados o a una negociación que se repite en cada llamada en vez de reutilizarse.
En los métodos seguros la misma petición se cronometra desde seis regiones. La diferencia entre la más rápida y la más lenta es lo que ve de verdad una audiencia global, y un código de estado que cambia entre regiones suele indicar un despliegue o un nodo del CDN que no terminó de propagarse.