Modificar una solicitud GraphQL con Breakpoint
Este breve artículo muestra cómo usar la herramienta Breakpoint con solicitudes y respuestas de GraphQL para modificar las cabeceras y el cuerpo de la solicitud.
El problema con GraphQL
Si tus apps usan GraphQL para comunicarse con el servidor backend, todas las URL de las solicitudes GraphQL son idénticas, por ejemplo https://<your_server>/graphql
Por eso, resulta muy difícil saber qué hace cada solicitud, a menos que leas el nombre de la consulta (Query Name) en el cuerpo.
Mira la siguiente captura de pantalla, que muestra el tráfico de www.producthunt.com capturado por Proxyman.

👉 Consejo: Añade la columna Query Name para mostrar el nombre de la consulta en la Main Table View.
Usar Breakpoint con solicitudes GraphQL
Como las URL de GraphQL son iguales, Breakpoint podría no saber a qué solicitud GraphQL debe aplicarse el punto de interrupción.
Para establecer un Breakpoint en una solicitud GraphQL, puedes hacer una de estas dos cosas:
1. Activar manualmente el GraphQL Query Name
Al crear una nueva regla de Breakpoint, haz clic en el desplegable de Wildcard → Advanced → GraphQL Query Name.

2. Añadir la consulta GraphQL automáticamente
Proxyman añade automáticamente el GraphQL Query Name si se trata de una solicitud GraphQL. Solo tienes que:
- En la Main Table View, haz clic derecho en la solicitud GraphQL
- Tools → Breakpoint
- El GraphQL Query Name se rellena automáticamente.

Resultado
Breakpoint funciona como se espera con las solicitudes GraphQL. Permite modificar los datos de la solicitud y de la respuesta, como las cabeceras, la URL, el código de estado o el cuerpo.

GraphQL con otras herramientas de depuración
Todas las herramientas de depuración, como Map Local, Breakpoint, Scripting y Block/Allow List, son compatibles con el GraphQL Query Name.
Asigna un nombre a la operación en el código del cliente; una consulta anónima no se puede identificar con tanta claridad. Como respuestas útiles para probar, puedes usar un resultado normal con data y un campo que admite null, un array errors en el nivel superior y una respuesta parcial que contenga data y errors a la vez. Limita la regla de Breakpoint a una sola operación para que las llamadas GraphQL de polling o en segundo plano no queden pausadas.
Esperamos que este breve artículo te ayude a mantener todo bien organizado. ¡Feliz programación! 👨🚀
Proxyman es una app de alto rendimiento para macOS que permite a los desarrolladores capturar e inspeccionar el tráfico HTTP(s) de apps y dominios en dispositivos iOS, simuladores de iOS y dispositivos Android.
Descárgala en https://proxyman.com/
