> For the complete documentation index, see [llms.txt](https://sitasys-ag.gitbook.io/evalink-talos/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sitasys-ag.gitbook.io/evalink-talos/get-started/rest-basics-1.md).

# 3. About REST – The Basics

To explore and test the evalink talos API, it is essential to have a basic understanding of the different HTTP (**H**yper **T**ext **T**ransfer **P**rotocol) methods, or so-called *verbs*, an API supports.

&#x20;HTTP is the protocol that is used by browsers and servers to communicate. It defines a set of request methods to indicate the desired action.&#x20;

There are 7 basic HTTP Methods:

1. **`GET`**
2. **`POST`**
3. **`PUT`**
4. **`HEAD`**
5. **`DELETE`**
6. **`PATCH`**
7. **`OPTIONS`**

&#x20;**`GET`**      is by far the most important method. It is used **to request and retrieve data**, a document or another source from a server. A source is identified by the request URL.

&#x20;**`POST`**    follows the opposite approach: it primarily transmits data (in form of an URL) to a web server. Requests are used **to send data to the API server** to create or update resources. The data sent to the server is stored in the [request body](https://stackoverflow.com/questions/22034144/what-does-it-mean-http-request-body) of the HTTP request.

&#x20;**`PUT`**       requests allow modification of existing sources or creation of new data on the server, they are used to send data to the API **to update or create a resource**. Unlike the POST method, the URL in the PUT request identifies the data itself sent with the request, not the source.

&#x20;**`PATCH`**    requests are used to only apply partial modifications to the resource.

&#x20;**`DELETE`**  requests are used to delete the resource at the specified URL.

&#x20;**`HEAD`**      is almost identical to **`GET`**, **except without the response body**. Unlike GET, however, the server does not transmit the actual data. In other words, if **`GET`**` ``/alarms` delivers a list of alarms, then **`HEAD`**` ``/alarms` will make the same request, but won't get back the list of alarms.

You can find more information about the basic HTTP Methods in the following [link](https://assertible.com/blog/7-http-methods-every-web-developer-should-know-and-how-to-test-them).
