The web portal is designed for a large number of users who are united by common interests. It can be a private resource, with limited access, created specifically for business. This site is usually used by company employees, partners, and customers. The web portal is also open, its functionality is available to everyone. A web portal differs from a commercial site by the presence of interactive tools.
In this article, we will draw your attention to the importance of APIs for outsource web portal development. Let’s begin!
How APIs generally work
Most developers of websites, web services, and mobile applications sooner or later have to deal with a client-server architecture, namely to develop a web API or integrate with it.
Classical REST implies that the client works with the server as a flat data storage, while nothing is said about the connectivity and interdependence of data among themselves. All this by default falls entirely on the shoulders of the client application.
However, modern subject areas for which data management systems are being developed, be it social services or Internet marketing systems, imply a complex relationship between the entities stored in the database.
Support for these links, i.e. data integrity is the responsibility of the server side, while the client is only an interface for accessing this data. So what are we missing in REST?
Function calls
In order not to change the data and the links between them manually, you can simply call a function on the resource and send the necessary data as an argument to it. This operation does not fit the REST standards, there is no special verb for it, which makes us developers get out of it all the way.
The simplest example is user authorization. We call the login function, pass it an object containing the credentials as an argument, and receive an access key in the response. What happens to the data on the server side does not bother us.
Another option is to create and break links between data. For example, adding a user to a group. We call the addUser function on the group entity, pass the user object as a parameter, and get the result.
And some operations are not directly related to saving data as such, as Digiteum explains. For example, sending notifications, confirming or rejecting any operations (end of the reporting period, etc).
Multiple operations
It often happens, and client developers will understand what I mean, that it is more convenient for a client application to create/ modify/ delete/ several homogeneous objects at once with one request, and for each object a server-side verdict is possible. There are at least several options here: either all the changes have been made, or they have been made partially (for some objects), or an error has occurred.
Well, there are also several strategies: apply changes only in case of success for everyone, or apply partially, or roll back in case of any error, and this already draws on a full-fledged transaction mechanism.
Client and server
- In this case, we consider a server to be an abstract machine on the network capable of receiving an HTTP request, processing it, and returning a correct response. In the context of this article, its physical essence and internal architecture are completely unimportant, whether it is a student laptop or a huge cluster of industrial servers scattered around the world.
- The client can also be anything that can form and send an HTTP request. Until a certain point in this article, we will also not be particularly interested in the goals that the client sets for himself when sending this request, as well as what he will do with the answer. The client can be a JavaScript script running in the browser, a mobile app, an evil (or not-so) daemon running on the server, or a too-smart fridge (there are already some).
REST API and its structural principles
REST (Representational state transfer) was originally conceived as a simple and unambiguous interface for data management, involving only a few basic operations with direct network storage (server): data retrieval (GET), saving (POST), changing (PUT / PATCH) and deletion (DELETE).
Of course, this list has always been accompanied by such options as:
- error handling in the request (whether the request is correctly formulated);
- data access restriction (suddenly you should not know this);
- validation of incoming data (suddenly you wrote nonsense).
In general, all possible checks that the server executes before fulfilling the client's desire. In addition, REST has a number of architectural principles, a list of which can be found in any other REST article.
Let's go over them briefly so that they are at hand and do not have to go anywhere:
- Server independence from the client. Servers and clients can be instantly replaced by others independently of each other since the interface between them does not change. The server does not store client states.
- Server independence from the client. Servers and clients can be instantly replaced by others independently of each other since the interface between them does not change. The server does not store client states.
- Independence of the data storage format from the format of their transfer. The server can support several different formats for transferring the same data (JSON, XML, etc.) but stores the data in its internal format, regardless of the supported ones.
- The presence of all necessary metadata in the response. In addition to the data itself, the server must return the details of processing the request. For example, error messages, various properties of the resource necessary for further work with it, for example, the total number of records in the collection for the correct display of page navigation. We'll go over the different types of resources.
Summing it up
An Internet portal is an Internet resource that presents a large number of goods, services, and services visited by a large number of users. Portal development combines the features and technologies of a website, directory, media, and platform for communication of a group of users.
The creation of a portal is a profitable investment project in the field of mass communications. The Digiteum company provides professional services for the development of a high-quality web portal at the most affordable prices. You can contact them to get reliable assistance.