Renoir Reis
Renoir Reis

Reputation: 358

How to test integrations between local environment and external services (webhooks)

since i started to develop web applications i always found very annoying to inspect external services requests and test my application with "realistic" scenarios. What's the solutions we've got to expose my local development environment to external services?

I am using Laravel Homestead and/or PHP Development Server

Upvotes: 1

Views: 527

Answers (1)

Renoir Reis
Renoir Reis

Reputation: 358

Before some time searching for the definitive answer i found a solution that solves all these problems in an efficient, free way, this is Ngrok, a product created by Alan Shreve -- which has worked on giants like Microsoft and Twilio. Alan wrote about the creation of Ngrok and an article on his blog he describes the product as:

"Ngrok is a tunneling, reverse proxy that establishes secure tunnels from a public endpoint to a locally running network service while capturing all traffic for inspection and replay. It is an open-source project on GitHub."

Let's get started:

Well, now that you know a little bit about the tool and why i found it let's demonstrate how to expose a local environment to allow third-party services to submit requests to local environments via Webhook is very simple and the two solutions that I'm going to present have been tested and work with the following scenarios :

  • Scenario 1: A PHP project using PHP 7.2.6 Development Server
  • Scenario 2: A Laravel (PHP) project using Laravel Development Server (php artisan serve)
  • Scenario 3: A Laravel (PHP) project using Laravel Homestead

To do this just follow the steps:

  1. Access the Ngrok website
  2. Register or Login
  3. Download the client based on your OS
  4. Authenticate the client downloaded following the instructions that appear on the same page you've downloaded it.

For the first two scenarios just run the following command

ngrok http <host>:<port>

ex: ngrok http 127.0.0.0.1:666

For the third scenario (if you are using a domain to access the homestead Ex: homestead.test you must rewrite the host-header. But don't worry, to achieve it just increment the command above to something like)

ngrok http <homestead_host_ip>:<port> -host-header=<homestead_domain>

example: ngrok http 192.168.10.10:80 -host-header=homestead.test

Voilà, now just point the URL generated by Ngrok in Webhook that you want to test and enjoy this wonderful solution.

Upvotes: 1

Related Questions