> For the complete documentation index, see [llms.txt](https://docs.system-analyst-base.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.system-analyst-base.ru/hard-skills/integracii/vidy-integracii/sinkhronnoe-vzaimodeistvie/rest.md).

# 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/>
