With the development of technology, the work that users can do through platforms and applications has increased or has become easier. So what gives us this convenience and allows us to do many things without the need for developers? Let’s examine Restful API together.
Table of Contents
What is API
API stands for Application Programming Interface. In other words, it can be called an application programming interface. It enables the functions in an application to be used easily and functionally in other applications. In other words, we can say that the API establishes a link, a bridge between two applications. It is thanks to the API that 2 different but related software or database systems can communicate with each other in a compatible way.
APIs in Our Daily Life
Imagine going to a cafe or restaurant as a customer. The waiter first gives you a menu and asks you to decide from this menu. In this menu, different types of food and drinks in that restaurant are grouped together and sometimes with little explanations. In this way, you both know the products you can buy, and you know how you will receive an answer for the product you choose. If you are not a gourmet, you do not need to know the technical flow of the restaurant’s kitchen, such as who cooked the food, how many spoons of salt are placed in it, and on which plate it will be placed, your expectation is only the order you place.
API in Software
If we were to transform our restaurant menu example into a software domain. You are a client, a restaurant is an application you use, and a menu is an API. You can see the products opened by the restaurant from the menu and request the ones you want.
Services produced according to needs may sometimes need to communicate with each other. For example, imagine that you are making a financial reporting application. You can get up-to-date exchange rate information by using the central bank’s API to convert foreign currency transactions to American Dollars.
Finally, imagine that you are making a project, but the website has separate applications on Android and iOS. Instead of writing all the controls repetitively for each platform, it will provide great convenience and minimize complexity by performing operations as an API in one place and accessing the API from these applications.
What is the Restful API
Restful API, or Representational State Transfer, is generally defined as a service infrastructure that enables very fast and simple communication between client and server. It can be said that the Restful API system is the preferred data transfer method in service-oriented applications. Rest works on HTTP on systems and is quite simple compared to other alternative services. It has a much faster structure because it provides data exchange with very low-size content. Rest is suitable for communicating data between client and server as XML or JSON. Web applications written in Rest standards are called Restful services.
As a result of the Server – Client connection created with Rest, data exchange takes place thanks to certain requests. HTTP requests and functions used during rest are as follows;
GET is used to list and display data.
POST is a request to add data.
DELETE is used to delete data.
PUT is a request to update some of the data.
Coming to the design principles of the Restful Api, we can actually call them the principles that determine the boundaries within which the REST architecture should be located rather than constraints.
The fact that REST is stateless means that the server does not keep information about the client, such as session. Only the client holds such information. Therefore, the server does not keep information such as how many requests the requesting client has made before or which requests. The client, on the other hand, gives all the information the server needs in its request.
But at the same time, since the server does not keep data about the client, the client sends some information on each request, which increases the cost. This can be considered as a disadvantage of being stateless.
All API requests for the same resource should look the same regardless of where the request came from. The Restful API should ensure that the same piece of data, such as a user’s name or email address, belongs to only one uniform resource identifier (URI). Resources should not be huge, but should contain any information the other party may need.
A Restful API design must be able to store cacheable data, as a stateless API can increase request load by handling large numbers of inbound and outbound calls. According to this API design principle, data in a response should be classified as cacheable or uncacheable, either implicitly or explicitly.
If a response can be cached, the client cache is given the right to recycle that response data for similar requests in the future.
We tried to examine the REST architecture and the general structure of Restful services. It is possible to elaborate on the titles here, and there are also different titles that we could not include in the article. Here, our aim was to examine REST in its essential aspects. I hope it was a useful introduction. If you are going to write a Restful API from scratch or develop Restful services on a template, I recommend you to examine the APIs of institutions such as Twitter, Amazon, Google that guide these issues and set trends.