Ser desarrollador también conlleva la búsqueda incesante de facilitarte el trabajo. Por suerte, el resto del mundo de los desarrolladores también está en esta búsqueda y a menudo lo ha hecho creando herramientas útiles. La mayoría de las herramientas sólo resuelven partes de tu problema y te ahorran un poco de tiempo y frustración. Sin embargo, de vez en cuando encuentras una herramienta que ¡es una solución tan perfecta para tu situación! Tan genial que te dan ganas de correr como un loco yendo de puerta en puerta corriendo la voz de esta nueva y genial herramienta que acabas de encontrar. Esta vez esa herramienta era Ngrok para probar webhooks.
Un webhook es un concepto bastante sencillo. Cuando trabajas con un tercero y quieres que te notifique ciertos cambios, la otra parte puede suministrarte una devolución de llamada personalizada sobre eventos como cambios de estado. A continuación, tú les proporcionas una URL en la que quieres recibir un postback, para que puedas actuar sobre estos eventos. Ahora bien, esto parece fácil de hacer y no debería suponer mucho problema, así que ¿por qué querrías utilizar Ngrok? La respuesta: ¡para probarlo en tu máquina local!
Normalmente, tu localhost o contenedor Docker no es (o no quieres que sea) accesible desde fuentes externas. Podrías hacer un montón de configuraciones y abrir puertos en los que el webhook publique su callback o añadir algunas excepciones en tu cortafuegos. Pero lo más probable es que no quieras molestarte por esto cada vez que vayas a implementar un webhook. Aquí es donde Ngrok te ayuda creando un túnel seguro a tu host local para probar los webhooks. ¡Es muy fácil! Todo lo que tienes que hacer es descargar y descomprimir Ngrok, ir a la carpeta en tu terminal y escribir ./ngrok HTTP y el puerto que quieres que utilice el túnel.
Esto dará como resultado dos URLs generadas para HTTP y HTTPS que puedes establecer como la URL en la que quieres recibir el postback del webhook. La URL permanecerá activa mientras el terminal esté abierto, de modo que cuando cierres el terminal, no tendrás que preocuparte de que el túnel siga abierto después de probar tus webhooks.
Ngrok también proporciona una interfaz web muy práctica en el puerto localhost 4040 ( http://localhost:4040) donde puedes ver las solicitudes entrantes.
La interfaz web también puede reproducir la solicitud para que no tengas que esperar a que el webhook se active de nuevo, lo que acelera mucho las cosas.
Como comentario final, me gustaría señalar que aunque Ngrok está hecho para implementar webhooks. Podría verme utilizándolo para otros fines, como durante el desarrollo móvil para acceder fácilmente a localhost desde un emulador o dispositivo móvil. O cuando necesite probar rápidamente una aplicación web responsiva en localhost desde una tableta.
Por: Rowan van Balen