Это архитектурный стиль для создания веб-сервисов, который использует стандартные HTTP методы и принципы для взаимодействия между клиентом и сервером. REST API предоставляет набор операций для создания, чтения, обновления и удаления ресурсов, представленных в виде URL.
🚩Основные принципы REST API
🟠Клиент-серверная архитектура
Клиент и сервер отделены друг от друга. Клиент запрашивает ресурсы, сервер обрабатывает запросы и возвращает ресурсы или статус операции.
🟠Бесподсессионное взаимодействие (stateless)
Каждое взаимодействие между клиентом и сервером независимое. Сервер не хранит состояние клиента между запросами. Вся необходимая информация для выполнения запроса должна быть предоставлена в каждом запросе.
🟠Кеширование
Ответы сервера могут быть кешированы клиентом или промежуточными звеньями (прокси-серверами) для повышения производительности и снижения нагрузки на сервер.
🟠Единый интерфейс (Uniform Interface)
Универсальный интерфейс упрощает взаимодействие между клиентом и сервером. Основные методы HTTP (GET, POST, PUT, DELETE) используются для выполнения операций с ресурсами.
🟠Многоуровневая система
REST API может быть организован в виде многоуровневой системы, где компоненты выполняют разные задачи (например, балансировка нагрузки, кеширование, защита и т.д.).
🟠Представление ресурсов (Representations)
Ресурсы представляются в виде различных форматов (обычно JSON или XML). Клиент и сервер могут договариваться о формате данных через заголовки HTTP (например,
Content-Type и Accept).🚩Основные методы HTTP в REST API
🟠GET
Извлечение данных с сервера. Например, получение информации о пользователе.
🟠POST
Отправка данных на сервер для создания нового ресурса. Например, создание новой учетной записи пользователя.
🟠PUT
Обновление существующего ресурса на сервере. Например, обновление информации о пользователе.
🟠DELETE
Удаление ресурса с сервера. Например, удаление учетной записи пользователя.
🟠PATCH
Частичное обновление ресурса на сервере. Например, изменение только email пользователя.
🚩Примеры запроса и ответа
Запрос на создание нового пользователя (POST /users)
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com"
}
Ответ на успешное создание пользователя
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
}
Ставь 👍 и забирай 📚 Базу знаний