Что такое REST
REST (Representational State Transfer | Передача состояния представления**)** — это архитектурный стиль для построения сетевых приложений. Определяет как клиент и сервер должны взаимодействовать по сети (обычно через протокол HTTP). Предназначен чтобы помогать делать удобные, понятные и масштабируемые API.
Требования к архитектуре REST:
Существует 5 обязательных ограничений для построения REST-приложений и 1 необязательное.
1. Клиент-серверная модель:
Клиент и сервер чётко разделены. Клиент отвечает за интерфейс пользователя, сервер — за хранение и обработку данных.
2. Отсутствие состояния (stateless):
Каждый запрос от клиента к серверу должен быть самодостаточным и не зависеть от предыдущих запросов. Вся необходимая информация передаётся в запросе.
3. Кэширование:
Ответы сервера должны содержать информацию о том, можно ли их кэшировать. Это помогает сократить задержки и снизить нагрузку.
4. Единообразие интерфейса:
Все взаимодействия между клиентом и сервером должны быть консистентными и предсказуемыми:
• Четкая структура URL.
• Использование стандартных HTTP методов (GET, POST, PUT, DELETE и др.).
• Передача данных в стандартных форматах, чаще всего JSON или XML.
5. Слои (layered system):
Архитектура может состоять из нескольких слоёв (клиент, сервер, прокси, балансировщики и т. д.), где каждый слой не знает о внутреннем устройстве других.
6. Код по запросу (по желанию):
Сервер может передавать клиенту исполняемый код (например, скрипты), чтобы расширить функциональность клиента.
