# REST

{% hint style="info" %}
**REST (Representational State Transfer)** — это программный архитектурный стиль, который определяет набор ограничений, которые будут использоваться для создания веб-сервисов.&#x20;
{% endhint %}

## RESTful принципы

* Клиент-серверная модель (client-server model).
* Отсутствие состояния (statelessness).
* Кэширование (cacheability).
* Единообразие интерфейса (uniform interface).
* Многоуровневая система (layered system).
* Код по требованию (code on demand) — необязательно.

Подробнее в главе: [RESTful принципы](/hard-skills/integracii/vidy-integracii/sinkhronnoe-vzaimodeistvie/rest/restful-principy.md)

## RESTful Web Service

1. REST API работает поверх HTTP(S)-протокола и максимально эффективно использует его свойства.&#x20;

<details>

<summary>HTTP</summary>

**HTTP (HyperText Transfer Protocol)** — протокол прикладного уровня. Обмен сообщениями идёт по схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера).

Подробнее в главе HTTP: [HTTP](/hard-skills/devops-for-sa/osnovy-setei/http.md)

</details>

2. Веб-сервисы, соответствующие архитектурному стилю REST, которые называются RESTful Web-сервисами (RWS), обеспечивают взаимодействие между компьютерными системами в Интернете. Веб-сервисы RESTful позволяют запрашивающим системам получать доступ к текстовым представлениям веб-ресурсов и манипулировать ими с помощью унифицированного и предварительно определенного набора операций без сохранения состояния.

{% hint style="success" %}
HTTP (протокол) — REST API (стиль) — RESTful Web Service (RWS) (сервис)

Сервис RWS использует архитектурный стиль REST API, который использует протокол HTTP.&#x20;
{% endhint %}

Источники:&#x20;

* <https://1cloud.ru/blog/intoduction_in_api_and_restapi>
* <http://js.programs.kodika.school/05_rest_api/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.system-analyst-base.ru/hard-skills/integracii/vidy-integracii/sinkhronnoe-vzaimodeistvie/rest.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
