what are webhooks
Webhooks is a principle of communication between server applications. It allows your app to get a notification about some event that occurred in another server application instantaneously. Webhooks are part of API (Application Programming Interface), particularly RESTful API which is a most famous web services standard over the HTTP protocol. Basically it is an event driven approach of communication between the apps. Webhooks are somehow similar to websockets. The difference is that webhooks are using HTTP protocol and mainly POST HTTP method to deliver the signals from one app to another.
Who supports the webhooks?
Almost every well-known 3rd-party that provides a REST API, also supports webhooks. The most popular are like Zoom, Slack, Paypal, Stripe, GitHub, BitBucket and so forth. Each of these systems provide a user interface where you’ll be able to select one of the available events and provide your corresponding webhook URL that should be triggered immediately after the selected event occurs.
What are the webhook challenges?
The main challenge is obviously webhooks testing and integration. First of all even the best API documentation won’t provide you all possible information about what you might receive as a payload to your webhook service, especially when there’s some business logic behind the 3rd party event notification with different use cases. This means that you need to perform multiple tests in order to get possible payload(s). But how can you do that if your application is on the local environment? There are few possible options. For instance exposing your app to the world through your external IP address and some port which is not always possible, mostly when you work in a big company due to many security precautions and restrictions. You might try to push your app to some remote server and expose your app there. But this requires an additional effort to deploy your app elsewhere and after it is not the most convenient way to debug and test webhook payloads.
Best way to integrate and test webhooks
The easiest and therefore the best option would be simply to use fake API or mock API services. One of the most convenient in terms of webhooks debugging and testing is QuickMocker. Simply create a free account, add your project with a public subdomain name and optionally an endpoint (webhook) that should intercept the request. This minimal setup will allow you to obtain an URL which you may use for debugging payloads from the 3rd parties when they trigger the notifications. Except for this you may use a more advanced setup through the local forwarder that can not only capture the request, but also forward it to your local application without any additional software. All done within the browser.