(продолжение предыдущего поста)
REST API (Representational State Transfer) — архитектурный стиль взаимодействия компонентов распределённой системы для передачи данных между сервером и клиентом с использованием протокола HTTP. Проще говоря, это способ взаимодействия сайтов и веб-приложений с сервером для получения, изменения или удаления данных. REST API широко используется в веб-разработке, мобильных приложениях и облачных сервисах благодаря своей простоте и эффективности.
6 ключевых принципов работы REST API:
1. Client-Server (Клиент-сервер):
* клиент (пользовательский интерфейс, например, веб-страница или приложение) и сервер разделены;
* код запросов остаётся на стороне клиента, а код для доступа к данным — на стороне сервера;
* это упрощает масштабирование и перенос интерфейса на другие платформы.
2. Stateless (Отсутствие состояния):
* сервер не хранит информацию о состоянии клиента (истории запросов);
* каждый запрос от клиента должен содержать всю необходимую информацию для обработки;
* сервер и клиент не сохраняют данные о предыдущих взаимодействиях (как показано на схеме: «Do not store state info»).
3. Uniform Interface (Единый интерфейс):
* все запросы к данным выполняются через единый URL-адрес с использованием стандартных HTTP-методов (GET, POST, PUT, DELETE, PATCH);
* ресурсы (например,
/products, /users) доступны по чётким URL-адресам (например, https://example.com/api/v3/products);* это упрощает архитектуру и делает взаимодействие с сервером более понятным.
4. Cacheable (Кэшируемость):
* данные могут быть кэшированы (сохранены в буфере) для ускорения повторных запросов;
* клиент может обращаться к кэшу вместо сервера, если данные не изменились;
* пример на схеме: ответ сервера с заголовком
Cache-Control: public, max-age=3600.5. Layered Systems (Многоуровневая система):
* архитектура состоит из нескольких уровней (например, Load Balancer, Auth Service, Product Database), которые взаимодействуют только с ближайшими уровнями;
* это повышает безопасность, упрощает масштабирование и позволяет изолировать компоненты системы (как показано на схеме с Load Balancer и Auth Service).
6. Code on Demand (Код по запросу, опционально):
* сервер может отправлять клиенту код (например, скрипт
script.js) по требованию;* это позволяет усложнять логику приложения только при необходимости (пример на схеме:
GET /script.js).### Основные HTTP-методы, используемые в REST API:
* GET — получение данных (например,
GET /products);* POST — добавление новых данных;
* PUT — обновление данных;
* DELETE — удаление данных;
* PATCH — частичное обновление данных.