Что такое REST
Python
Middle
Без компании
Что такое 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. Код по запросу (по желанию):**
Сервер может передавать клиенту исполняемый код (например, скрипты), чтобы расширить функциональность клиента.