Let’s consider some real time scenarios first.
You go to any restaurant for a grand party. A waiter comes to your desk and takes your order. Waiter goes to kitchen and brings up your ordered food. You don’t bother how waiter did this. You just worried about your order. In more specific way, You are concerned for your work to be done not how it is done and by whom it will be done.
Let’s see an another example. You launch Facebook URL on a browser and enter your credentials. If you provide correct credentials, you should view home page of your account. If you provide wrong credentials, you will see some error message. How it happens actually? When we pass credentials, some information is being sent to Facebook’s back end through messenger. These credentials information is validated and response is sent back to end user through messenger.
Let’s see an another example. You wanted to book a flight ticket. You generally use a website which shows flights from all flight service provider. E.g. Yatra. When you enter all required details like Source, Destination, Journey date etc and click on search, you can see N number of flights from different airlines. Actually when you provide all details, Yatra sent a message through messenger to all airlines and request flight information as per requirement. Airlines returns list of flight with price to Yatra and it shows up to end user.
In all above example, you could notice one common thing: “Messenger”. This messenger in technical world is called as an Application Programming Interface (API). An API performs what user has requested without exposing internal logic or working of task done. You are able to login to Facebook and use it but you don’t get to know how Facebook is working internally. You can also think API as an example of oops concepts called Abstraction.
In terms of software we can define API as below:
“An API is a set of codes which allows two or more than two applications to communicate each other internally or externally and provide a result to end users or to another API.“.
An API can call another API or Output of an API can be input for another API.
I got some feedback to explain “internally or externally” from definition of API above.
Suppose you are developing an application and it has many components. A component will communicate to other component to get data or provide data. For example: Login component of Facebook application needs to communicate “Profile” component to get user’s data. Here these components will communicate to each other through an API. It is internal communication as both components within same application talking to each others. It is an example of internal communication.
Let’s see other aspect now. You download some apps and it will ask you to Login with Facebook on launching app. You click on it to login with Facebook and you are promoted to dialog box where you need to provide some permissions and you are logged in. Here App and Facebook both are different applications but they communicated and it is possible because of APIs. App used facebook open APIs to provide facility to login using Facebook. It is an example of external communication.
If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.
Author: Amod Mahajan
My name is Amod Mahajan and I am an IT employee with 6+ years of experience in Software testing and staying in Bengaluru. My area of interest is Automation testing. I started from basics and went through so many selenium tutorials. Thanks to Mukesh Otwani as his tutorials are easy and cover basics to advance. I have habit of exploring concepts by deep diving. I used to make notes. I thought of sharing my knowledge through posts and now I am here. #KeepLearning #ShareLearning