Why APIs & What Are They Made Of?
Tags: api, beginners, webdev, learning
Published: 2023-04-18 12:49:24

We’ve covered [how prevalent APIs are on the internet](https://bycontxt.com/blog/blog/so-you-have-an-api-vulnerability-what-does-that-mean-and-what-can-be-done?utm_source=DevTo) and [how important they are in the application development process](https://bycontxt.com/blog/blog/apis-are-growing-faster-than-developers-can-handle?utm_source=DevTo). But why APIs? What makes them so useful that half of a company’s development efforts go into them?

The simple answer is that it makes the process of app development much more efficient and effective, saving time and money. APIs allow your products or services to communicate with other products and services without needing to know how the third-party product or service is implemented. Due to the rapid development in the digital market, flexibility and simple design are of the utmost importance, which is why APIs are so heavily used.

It’s easy to find examples of APIs in use all over the digital world. One of the most prominent is logging in to a website using a different account such as Google, Facebook, or Twitter. Using these options makes it a more seamless process for the user and gives the site access to the user’s personal data automatically. Finally, it offers secure authentication, allowing developers to focus on other aspects of application development.

Another common API example is paying with PayPal. A lot of e-commerce websites will allow a user to pay with PayPal when checking out. Again, this makes for a good customer experience and is much more efficient for developers as they do not have to create their own secure payment system, as they can just use PayPal.

So, it’s obvious why APIs are so popular with developers, it creates a development process with much less friction, allowing developers to focus on innovating and growing the business value rather than functions that have been done to death.

But, how does an API even work, how is this data transmitted and converted for both systems to understand? The most basic understanding of APIs is that an API is a set of rules on how the two systems should communicate with each other. This is done by the user initiating an API call in the application, which means the API sends a request for information. The API will then access the web server to retrieve this information. Finally, the API will send this information back to the application which will display the requested information for the user.
When using an API, it all works by using an API call. It is integral to the function of an API. So what is it? What is it made of? There are four main components of an API call:

- The Endpoint
- The HTTP Method
- The Request Headers
- The Request Body

#### The Endpoint

This is where the request will be sent, the path to the web server or external program that has the information the user wants. This can be split into three different parts:

- Root Endpoint
- Resource
- Parameters

The Root Endpoint will be the URI for the API however, APIs often have multiple endpoints so the other two parts will be needed to specify where to go. The resource is what you are searching through, two common examples could be a user list or a product list. The parameters could consist of a query, a path, a form, or any other type of parameter. An example of this would be if you were searching for the details of a certain user, you would need to give the user ID of the user to find them in the database.

#### The HTTP Method

The HTTP Method defines the action that needs to be taken. The five most common HTTP methods are:

- GET - retrieve data from a resource
- POST - send data to a resource
- PUT - update data of a resource
- PATCH - partial update to data of a resource
- DELETE - delete data from a resource

#### The Request Headers

These are additional details to inform the API about your request and the type of response that is expected. Below are four of the most common headers in an API call:

- User-Agent - identifies the application, operating system, vendor, and/or version of the software that is acting for the user
- Content-Type - indicates the media type of the resource, such as XML or JSON
- Accept - indicates what media type the response should be sent, such as XML or JSON
- Authorization - provides credentials to authenticate a user when accessing protected resources

#### The Request Body

This contains the data that the user wants to send to the server or external program such as the user’s email if they are signing up for a newsletter.

That is a brief explanation of all the different parts of an API call. If you are interested in learning more about the information being sent in your API calls, you can [integrate](https://docs.darkspark.io/getting-started/integration?utm_source=DevTo) Darkspark into your application and view all your active API calls in your [Inventory](https://docs.darkspark.io/how-tos/darkspark-features/how-to-use-the-inventory?utm_source=DevTo) to better understand what data you might be unnecessarily sending.

**Sources:**

[https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces](https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces)
[https://blog.dreamfactory.com/3-reasons-why-you-need-an-api/](https://blog.dreamfactory.com/3-reasons-why-you-need-an-api/)
[https://stateful.com/blog/google-oauth](https://stateful.com/blog/google-oauth)
[https://nordicapis.com/5-examples-of-apis-we-use-in-our-everyday-lives/](https://nordicapis.com/5-examples-of-apis-we-use-in-our-everyday-lives/)
[https://www.turing.com/kb/7-examples-of-APIs](https://www.turing.com/kb/7-examples-of-APIs)
[https://tray.io/blog/how-do-apis-work](https://tray.io/blog/how-do-apis-work)
[https://www.programsbuzz.com/article/api-request-anatomy](https://www.programsbuzz.com/article/api-request-anatomy)
[https://blog.uptrends.com/technology/the-anatomy-of-an-api-call/](https://blog.uptrends.com/technology/the-anatomy-of-an-api-call/)
[https://blog.hubspot.com/website/api-calls](https://blog.hubspot.com/website/api-calls)
[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent)
[https://www.geeksforgeeks.org/http-headers-content-type/](https://www.geeksforgeeks.org/http-headers-content-type/)
[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)