Before we go into detail about the REST API, also called Application Programming Interface, here an exemplary attempt to explain why APIs in general are so practical: Since APIs work according to the principle of "Plug and Play", the comparison with the power connection is quite suitable here. Imagine that before you can make a cup of coffee you first have to get to grips with all the electrical engineering involved in order to get flowing electricity from the energy producer to your home.
It is obvious that this would not really make sense for several reasons. The possible lack of know-how and the very likely inefficiency in the process are two obvious reasons. Instead, you just plug the coffee machine into the power outlet and off you go. Pretty much identical APIs are to be understood. In other words, you get ready-made access to a functionality that you can use for something and don't have to build yourself first.
So interfaces are a very practical kind of code-based construct that allows us to build systems and functionality much easier and much faster. They reduce the complexity of the source code and provide us with an easy-to-use syntax for controlling a program, allowing us to establish communication between two independent software components.
General API types
Based on the way systems and software interact with each other and build the application architecture, there are different interfaces for hardware, operating systems, data structures, web services, etc. If we talk about software-specific APIs, they can often only be implemented using special programming languages. In addition, they often have their own syntax and functions, which requires either specific skills or enough capacity for diving into the weeds in order to really be efficient in the handling. Then there are also file-based APIs that exchange files in certain formats, which makes a system slow and error-prone. When it comes to web-based APIs, depending on the data transfer format in the request-respond messaging, we usually speak of SOAP (Simple Object Access Protocol), RPC (Remote Procedure Call) or the REST API. The latter is one of the better known. And we will now take a closer look at it below.
The REST API
The REST (Representational State Transfer) API is probably one of the simplest architectures for designing APIs. The concept aims to radically simplify the connection between two web applications by standardizing the modality. It is called Representational State Transfer, because in the communication between the applications, information about the state of the server resources is shared or represented in, for example, JSON, XML or HTML format. The REST API allows a client, e.g. you, to perform actions like reading (GET), creating new objects (POST), updating/editing (PUT) or deleting (DELETE) resources. The client simply sends the corresponding commands via HTTP. In addition to this uniform interface, there are other restrictions that must be satisfied to ensure that the REST format is used (client and server separation, stateless, layered system, and cacheable). We will not discuss these further here.
Why we at Parashift have now decided to develop a REST API for the integration of our product has to do, on the one hand, with the general advantages of REST APIs:
- Simplified standardized format, which greatly simplifies and accelerates implementations
- Ease of maintenance
- Server and client separation, which creates great flexibility and possibilities for individual scaling
- Greater resource efficiency, as the status of the communication between server and client does not have to be stored
- Process instances are created explicitly
- Statelessness enables significantly faster recovery processes in case of errors and increases reliability
- Adaptability to syntax or other systems
On the other hand, however, also because we can make WebHooks available to our customers via the URL. Thereby, we send them notifications to inform them about the platform status which is why the customers can save themselves the regular sending of call requests. This means, for example, when clients use our full-extraction method, we inform them when the processes of the validation are completed and the corrected results are ready respectively can be called for the further proceeding in the workflows hereinafter. This results in an ideal integration method.