APIs 101 with Postman
Tags: webdev, beginners, postmanstudent, postmanapi
Published: 2023-10-18 15:10:20

#### _API - A Digital Restaurant_
An API, like a restaurant waiter, acts as a mediator between software components. It connects you (the client) to a server, much like a waiter connecting you to the kitchen. Just as a waiter can't always guarantee a positive outcome, an API may also result in negative or unsuccessful responses, but it remains vital for smooth digital interactions.

![A Digital Restaurant - API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yyc2ftjlsy232w4kjzef.png)

### Introduction to APIs and Postman
APIs, short for Application Programming Interfaces, enable digital communication between services in today's complex software landscape. They allow developers to avoid building everything from the ground up by providing both free and paid options, including "Freemium" models. For instance, Instagram is a great example of API utilization. It harnesses your mobile device's hardware APIs, like the camera, to streamline photography, and employs various APIs for real-time post-processing, such as GIFs and location tagging, making your stories instantly shareable. This network of APIs ensures Instagram's smooth user experience, which would be challenging to create from scratch. The versatility of APIs isn't limited to Instagram; platforms like Spotify, Twitter, Facebook, Google, and Discord all offer APIs, empowering users to create innovative projects, from custom music platforms to creative bot implementations, limited only by their imagination.

APIs are like Lego bricks for software development, with developers creatively connecting them to build elegant web projects. Using APIs randomly can lead to chaos, but skilled developers craft stable systems and many projects employ third-party APIs. Learning about APIs opens doors to innovative projects. Postman simplifies API testing and is favored by 98% of Fortune 500 companies. Understanding APIs is crucial for modern software development.

### Requests and Responses

Consider the request and response as if you're asking for permission to visit Goa from your father. Your father plays the role of the server, and you act as the user, asking, "Can I go to Goa?" Just like in real life, your request can result in either approval or rejection. This analogy helps illustrate the concepts of requesting and responding.

In a technical context, a similar process occurs: a client sends an API request to a server, which then responds. For instance, when you search "Postman" on Google, your request goes to Google's server, which returns the search results. This exchange reflects the core workflow of digital requests and responses, where asking the right questions leads to the server providing the desired information.

![Requests and Responses](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8b8yqlc24zhi69oksfp5.png)

## The three ingredients to make a request

![Three Ingredients to make a request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t2ucpaump5io4avi8eme.png)

#####1. _Method (GET, POST, PUT, DELETE)_
A request involves three main parts: the method (e.g., GET, POST, PUT, DELETE) indicating the operation type, each serving a distinct purpose. For instance, GET reads data, POST sends data, PUT updates data, and DELETE removes data.

#####2. _Address/Endpoint (URL)_
The address or endpoint is like the destination you're trying to reach in the digital world. It's similar to your home address, but for web resources. When you make a request, you specify the URL or domain you want to access. For example, if you enter "google.com" in your browser, you're making a request to the Google website. So, the address or endpoint specifies where you want to go or which resource you want to access.

#####3. _Path_
The path offers detailed guidance to a specific location, much like directions to a room in a big building. For example, when you're going to a friend's room at a university, the address is the university's name, and the path is the instructions to locate your friend's room in the university. It provides additional context to the address for precise location identification.

###Building Your Request
####Parameters:
Parameters in a request convey specific details or instructions to the server, and they can be placed in various parts of the request.

_**In the query:**_ When parameters are in the query, they are added to the URL and help specify the information you are seeking. For example, when searching on Google, the search term "Postman" is a parameter in the query.

####Authorization:
Authorization is essential, particularly for APIs, as it verifies your identity and access permissions. Similar to needing a PIN for your bank account, an API key is necessary to access an API, guaranteeing data security and preventing unauthorized entry by limiting access to authorized parties or applications.

####Headers and body:
When you send a request, it includes headers and a body, which help provide additional context and information to the server.

_**Data types:**_ 
Headers convey metadata guiding the server in request processing. For example, the "User-Agent" header reveals the requesting software or browser, and "Accept" specifies the client's data format preferences, such as JSON or text.

API requests use data types like forms or JSON to transmit data. JSON is a common and preferred choice for data exchange due to its versatility, resembling JavaScript objects or Python dictionaries with quoted keys. Developers from diverse backgrounds find it essential for seamless API requests.

![Body of a API Request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o093h4zh5h5rbx17jx7x.png)

###Receiving Responses
####Status Codes:
Status codes are numerical indicators that convey whether a request was successful or not. They play a crucial role in communication between the client and the server.

![Http Status Codes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wvu711n73kxnfwjba8l.png)

_**200 OK:**_ This status code signifies that the request was accepted and successfully fulfilled. It's a positive response code indicating that everything went as expected.

_**201 Created:**_ When you receive a 201 status code, it means that the request you made resulted in the creation of something new. It's often used when you create a new resource on the server.

_**404 Not found:**_ A 404 status code is returned when the requested URL or resource is not found on the server. It's like saying, "Sorry, we couldn't find what you were looking for." This is a client-side error, indicating that the URL doesn't exist on the server.

These codes are part of a structured system of responses that help clients understand how the server processed their request. Other codes exist as well, addressing various scenarios and outcomes, but these are some of the most commonly encountered ones.

####Headers:
Headers are pieces of metadata that the server includes in its response. They provide additional information about the response, such as the software or browser used, content types, and more. Headers help the client understand how to handle the response.

####Accessing body data:
The response body holds the server's actual data, offering details about the requested resource or operation. It's the part with the meaningful information, which can be in various formats like JSON, HTML, or plain text, based on the response's nature and requested content.

> _In conclusion, understanding the fundamental concepts of API requests, responses is crucial. APIs are the building blocks for creating innovative digital experiences, and mastering them enables developers to craft efficient systems that enhance the user experience in the digital landscape._

In closing, thank you for reading my blog on APIs. I appreciate your time and hope this knowledge enriches your understanding and inspires creative projects. Happy coding!🙏🏼😊