A Webhook or an API?

A

In this blog, we’ll discuss what Webhooks and API’s are, their major differences, and when each should be used. 

Your applications on your phone, the websites you visit, all of them talk to each other. They pass requests and responses to each other, thus allowing you to view the response to your request in a flawless manner. 

Suppose, you purchase a pair of shoes on Amazon. You are making a payment using a payment gateway. As the payment is processed you receive a message on your mobile phone from your bank regarding the XXXX amount paid at Amazon.

How your bank knows where and when was the purchase was made, the amount paid, etc. is all possible through a connection between Amazon and the bank in question. 

 Application integrations help in synchronizing data between applications, databases, and platforms. These integrations can either be an API or a Webhook, depending on the scenario. 

We’ll discuss Webhooks and API’s in-depth here. 

WHAT ARE WEBHOOKS? 

Webhooks help in sending messages, alerts, notifications from the server-side application to the client-side application. 

It helps in sending real-time information to the application. This helps in receiving the information very soon.

Thus, the webhook sends a message when an event occurs on the server application. Allowing the server-side application to send a message to the client-side application.

So, instead of the client-side application constantly checking the server-side application and wasting resources, through webhooks the server-side application itself gets back to the client-side application when there is an update. 

For it to work, you have to feed in the webhook URL of the app that needs the data, into the app sending the data. 

The messages are sent to a unique URL, which would be the app’s phone number or IP address(the app to which the notification is to be sent).

Certain events trigger webhooks. Whenever that trigger event occurs in the source site, the webhook sees the event, collects the data, and sends it to the URL specified by you in the form of an HTTP request.

Example –

A new purchase takes place on Amazon(client-side application). Your registered card witnesses a change in the balance. Thus, this new event is transferred to the client-side application by giving them a confirmation message. Stating the order is processed for an XXXX amount. This is possible through a webhook.

A URL is created on your server that is ready to accept and process a POST request. You provide the URL to a service (the webhook provider) that will be sending the POST request. 

HERE’S A GLIMPSE –
Action app URL 

amazonpurchase.com/data/83568

Next, the URL is amplified with more data. This contains, the name of the customer, date, the amount spent, etc. This is to be in a serialized format. 

Serialized format 

Customer=john&value=2000.00&item=glassware

 To generate the GET request, both the URL and the serialized format are combined. A “?’ is added at the end of the app URL.

Full GET request 

 https://amazonpurchase.com/data/83568?Customer=john&value=2000.00&item=glassware

To get the webhook to function the GET request needs is added into the browser address bar. You can create webhooks in Zapier and link a certain set of applications. When an update occurs in one, the others react after the trigger and perform the necessary action. 

Such as, you could connect your Google calendar and Slack. Whenever a new event is added on your calendar, you can get a slack notification. So with a new meeting/conference, etc., the webhook gets triggered and you get a message on slack. 

The commands are sent from one app to another over HTTP. Thus, webhooks are called “user-defined HTTP callbacks” as they are usually triggered after some event. 

The action application can send a callback message to the trigger application to let the app know if the data is received or not. Like the message “Error 404”, for not receiving. 

You can set up different webhooks for different interactions.

WHEN TO USE a webhook?

Webhooks usually act as messengers for smaller data. A webhook helps in sending/extracting real-time updates. In situations where using an API would result in wastage of resources and cost, a Webhook is used

That is if there aren’t constant updates, it is better to use a webhook rather than an API. Also,  a webhook is more suitable if an API is poor or isn’t available to link the applications.

Webhooks only gets triggered when a new update is available. Thus, if the system goes offline due to some reason, there’s a chance you might miss out on the updates. 


WHAT IS AN API?

API is short for Application Programming Interface. It allows two applications to connect with each other or talk to each other. 

Unlike in a webhook, in an API the request for the information is first made from the client-side application. This is sent to the server-side application. After the information is located the answer is sent back to the client-side-application.

When you use an application on your mobile phone, the application connects to the Internet and sends data to a server. The server then retrieves that data, interprets it, and sends it back to your phone. The application then interprets that data and presents you with the information you requested in a readable way. This entire process happens via an API

Example –

Say you want to book a hotel in Himachal Pradesh, India, for a week. You’ll check for hotels on sites like MakeMyTrip. You feed your hotel type, area, date, etc. MakeMyTrip interacts with the various hotel APIs to give you the hotels that match your description. And then brings back the results to you via the API again. Thus, API acts as a messenger between the various hotels, MakeMyTrip and you. 

For an API to work there’s a request for data, followed by a response to that request. The data is usually delivered in a format like JSON.

APIs work incredibly well when you know you’re going to have a constant change in data. There’s no point in using an API if the data you’re requiring is not updating on a regular basis. 

Example –

If you’re a banking company that regularly has to update its client’s banking data such as balance, transactions, etc, then there will be constant requests. Hence an API is suitable here. 

APIs allow your applications or products to communicate with one another in a way of saving time and cost.

Another example is when a patient gathers his/her health details by scanning the  QR code present within their healthcare provider’s app.

 three types of apis:

  1. Private API – It’s for internal use within the company. Thus, being able to exercise complete control over the API. 
  2. Partner API – It links to your business partners. Example: Your business could team up with a payment gateway company, hence giving them access to your API makes everything a lot more convenient. This could, in turn, be a much smoother experience for the customers as well. 
  3. Public API – Here, the API is available to everyone. It allows developers to interact with the API and share data. It facilitates innovation by allowing the developers to think ways in which the service can be used. But one should remember that, If a startup ever decides to change the rules of usage for its API, for example, it decides to charge a fee for licensing the API, a third-party developer has no choice but to accept it. 

 

WHEN TO USE AN API?

An API is best for constant change in data. If it’s used when there is no frequent change, then it’s a wastage of resources. 

If there isn’t regular data available, there’s no surety that there will be data found in the application. Thus using an API in such a scenario doesn’t make any sense. 

But to solve this, you can set a call limit. That is, in a given time, only a certain number of calls(requests) can be made.

DIFFERENCES? 



About the author

Niharika Ayyagari

Always ready to jump into conversations revolving around dogs, baking, automation, music, and exhilarating adventure sports.