REST APIs - Runtime Terror

From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder


What is an API?

API stands for application programming interface. It does data transmission between softwares. In simpler words, it allows 2 applications to communicate with each other. When you open up an application on your phone, it sends data to a server. The server interprets the data and gives you new information that you need. Each API is implemented by statements that request software to do certain tasks. An API processes data between the application and the web server. API’s give flexibility to companies that need to connect with other businesses. API’s are important because they allow two different programs to communicate with each other. An API accesses and delivers information for you. A lot of actions you do on your phone like sending a message or playing a game use an API.

Client and Server

APIs are called by the client and these calls are received by the server. Clients and servers interact similar to humans when one is asking another a question or telling it a certain piece of data or information. When someone uses the Google search engine, the client is the browser being used, which sends the search query to Google servers. Then, Google servers process the information, search for an answer through the vast amount of information indexed by automated machines, and return an answer back to the client through the same API. What’s fascinating is that this all happens within seconds, even with information sent and received by the client, sometimes traveling thousands of miles across the world in that short span of time.

Something to be noted is that a machine that acts as a server for one API may be the client of another. For example, if machine A asks machine B a question, machine B may need to call machine C to get the answer to that question so that machine B can reply back to machine A.

What is a REST API?

REST stands for representational state transfer and a very popular type of API used across tons of APIs, which are used across the world wide web. Using certain HTTP methods from a uniform interface, this type of API connects the client to the server and the server sends back a response, usually in JSON or XML format; this enables client-server communication.

REST APIs are stateless, which removes server load by storing session data or the state of the service on the client instead of the server side. Being stateless usually means that caching will be used on the client side, which improves performance. Information can be classified as cacheable or non-cacheable. Layered systems disallow clients that connect to intermediate components such as a proxy to not know what is behind it. Therefore, components can be easily exchanged or expanded independently of each other. Code on Demand (CoD) is the only optional constraint in REST. It allows clients to improve in terms of flexibility and extend client functionality.

REST Commands for Communication

When the client interacts with the server by sending requests, it relies on HyperText Transfer Protocol (HTTP) as a way to interact with web resources. Four of the most common HTTP methods called are POST, GET, PUT, and DELETE. The following methods correspondingly create, read, update, and delete web resources. Once the request from the client is sent to the server, the server sends a response to fulfill the request. HTTP requests and responses are structured messages composed of a request/status line, header, and body. In a request message, the request line contains the specified HTTP method, the header contains general information about the request message, and the body contains any data to send from a method such as POST. On the other end, a response message begins with a status line to confirm the request, a header for the general information of the message, and a body that contains any data the client requested through a method such as GET. The web resources that are requested and retrieved can include images, videos, or text on a web page as it gets updated.

Benefits of the REST API

- REST reduces the complexity of the application, to bring ease to developers using or even creating their own APIs

- The REST API always adapts to the type of syntax or platforms being used, which gives considerable freedom when changing or testing new environments within the development.

- This protocol stands out due to its scalability. The separation between client and server. The product may be scaled by a development team without much difficulty.

- With the indispensable requirement for data from one of the requests to be properly sent, it is possible to perform a migration from one server to another or carry out changes on the database at any time

- Frontend and backend components can be hosted on different servers, which is a significant management advantage.