Proyectos

Inspector de peticiones

Las últimas peticiones de tus servidores de desarrollo con sus cabeceras y cuerpos, filtros, repetición tal cual o editada, y copia como cURL.

La pestaña Inspector (Q) guarda las últimas peticiones de cada dominio del proyecto, con sus cabeceras y sus cuerpos. Encuentra la llamada a la API que falló, repítela tal cual o editada, y cópiala como cURL. Como Analytics, ve lo que pasa por el proxy: las peticiones hechas a un dominio .test, sea cual sea el lenguaje del servidor (Laravel, Symfony, Node, Bun, Next.js…).

La pestaña Inspector: la lista de peticiones y el detalle de un POST rechazado con sus cabeceras y su cuerpo JSON

Qué se graba

  • Las páginas y las llamadas a la API. Los scripts, estilos, imágenes y fuentes, y la fontanería del servidor de desarrollo (recarga en caliente, WebSockets, server-sent events), se dejan fuera, como en Analytics.
  • De cada petición: el método, la ruta con su query, el estado, la duración y el tiempo hasta el primer byte, las cabeceras de la petición y de la respuesta, y los dos cuerpos.
  • Las últimas 200 peticiones de cada dominio, con como mucho 8 MB de cuerpos por dominio: las más antiguas salen primero.
  • Cada cuerpo se guarda hasta 64 KB. Más allá, el inspector lo indica y da su tamaño real.
  • Un cuerpo comprimido (gzip, deflate, brotli) se descomprime para mostrarlo. Un cuerpo binario (imagen, PDF…) no se muestra: solo su tipo y su tamaño.
  • Cuando el servidor de desarrollo no responde, la petición aparece con el estado 502 y el motivo, por ejemplo «Conexión rechazada: el servidor de desarrollo no está en marcha».

La lista

Las peticiones llegan en directo, la más reciente arriba. Encima de la lista:

  • Dominio (cuando el proyecto tiene varios), Método y Estado: 2xx, 3xx, 4xx, 5xx, o Sin respuesta cuando el servidor de desarrollo no respondió.
  • Ruta… filtra por una parte de la ruta, query incluida.
  • Buscar en cabeceras y cuerpos… busca un texto en la ruta, las cabeceras y los cuerpos. Los valores secretos (ver más abajo) quedan fuera de la búsqueda.
  • Repeticiones muestra solo las peticiones repetidas.
  • Pausar detiene la grabación de nuevas peticiones, para todos los proyectos; Reanudar la vuelve a iniciar. Las repeticiones se graban incluso en pausa.
  • Borrar vacía el inspector del proyecto, o del dominio elegido.

El detalle de una petición

Haz clic en una petición: a la derecha aparecen su estado, su duración, el tiempo hasta el primer byte, los tamaños enviado y recibido, la hora y el dominio. Después, para la Petición y para la Respuesta, las cabeceras y el cuerpo. Un cuerpo JSON se muestra con formato; Sin formato lo muestra tal como llegó.

Los secretos ocultos

Los valores de las cabeceras Authorization, Proxy-Authorization, Cookie y Set-Cookie se muestran como ••••••. Revelar los muestra, Ocultar los vuelve a ocultar. Se guardan tal cual en memoria para que la repetición funcione.

Repetir una petición

Repetir vuelve a enviar la petición tal cual: mismo método, misma ruta, mismas cabeceras (secretos incluidos) y mismo cuerpo. Pasa por el proxy hacia el servidor de desarrollo, como si la hubiera enviado el navegador (con las mismas cabeceras X-Forwarded-*), y aparece arriba de la lista con la etiqueta repetición. Su detalle indica la petición original («repetición de #12»); un clic vuelve a ella. Las repeticiones también cuentan en Analytics. El proxy debe estar en marcha.

Editar y repetir abre la petición en un formulario antes de enviarla:

  • Método y Ruta (empieza por /, query incluida);
  • Cabeceras, una por línea con la forma Nombre: valor. Un secreto dejado en •••••• conserva su valor original; vuelve a escribirlo para enviar otro, borra la línea para no enviarlo. Content-Length se vuelve a calcular;
  • Cuerpo: un JSON se propone con formato. Un cuerpo binario se envía tal cual.

El dominio no cambia: la petición va siempre al servidor de desarrollo de su dominio.

Copiar como cURL

Copiar como cURL pone en el portapapeles un comando curl hacia https://<dominio><ruta> (con el puerto cuando el proxy no escucha en el 443), sus cabeceras y su cuerpo. Accept-Encoding se sustituye por --compressed, para que la respuesta se pueda leer en el terminal.

curl -X POST 'https://app.acme.test/api/seances' \
  -H 'accept: application/json' \
  -H 'authorization: ••••••' \
  -H 'content-type: application/json' \
  --compressed \
  --data-raw '{"patientId":1842,"duree":45}'

Los secretos siguen ocultos en el comando, salvo que los hayas revelado antes de copiar. Un cuerpo cortado o binario se omite, con una línea de comentario encima del comando que lo indica.

getjoppa.com › support

Cargando

¿No funciona? Escribe a [email protected]. Una simple pregunta: [email protected].