REST API является одним из ключевых механизмов, на котором держатся многие веб-сервисы. В статье рассказали подробнее о том, как это работает и для чего именно используется.
Для чего используют REST API
REST API – что это такое
REST — это архитектурный стиль API, задающий определенные принципы построения и взаимодействия интерфейсов. Он описывает, каким образом должны быть устроены API, какие операции они могут выполнять и как данные передаются между клиентом и сервером. Такой подход делает систему взаимодействия более универсальной, гибкой и эффективной.
Аббревиатура REST расшифровывается как Representational State Transfer, что можно перевести как «передача состояния представления» или «обмен репрезентативным состоянием». Подход активно используется в веб-разработке и для интеграции сервисов и приложений. При каждом обращении клиент получает определенное представление ресурса. Например, документ в формате JSON или XML, а сервер не хранит информацию о состоянии клиента между запросами.
В отличие от SOAP, который представляет собой строгий протокол с жесткими правилами, REST — это набор принципов и рекомендаций. У него нет собственного стандарта или фиксированных методов. Тем не менее REST тесно связан с HTTP, поскольку его создатель, Рой Филдинг, участвовал в разработке HTTP-протокола. Именно поэтому чаще всего REST реализуют поверх HTTP, хотя теоретически он может использовать и другие протоколы. Стоит отметить, что REST и HTTP — не одно и то же: REST может работать без HTTP, а HTTP может использоваться без REST.
Как работает REST API
Выделяют 6 требований REST к проектированию API — 5 обязательных и 1 факультативное:
- Клиент-серверная модель (client-server model) — подразумевается разделение между клиентом и сервером; улучшает масштабируемость системы.
- Отсутствие состояния (statelessness) — запросы клиента обрабатываются независимо от предыдущих; информация о запросах не хранится на сервере.
- Кэширование (cacheability) — ответы сервиса могут быть сохранены в кеш; снижается нагрузка на сервер, загрузка данных происходит быстрее.
- Единообразие интерфейса (uniform interface) — ресурсы интерфейса имеют четкую структуру и единообразные URL-адреса.
- Многоуровневая система (layered system) — каждый уровень действует независимо от другого; обеспечивает гибкость и надежность системы.
- Код по требованию (code on demand) — может поддерживать загрузку и выполнение кода по запросу клиента, необязательный принцип.
Методы REST API
REST является подходом, а не самостоятельным протоколом, из-за чего при работе с ним применяют методы, стандартные для HTTP. К ним относятся:
- GET — получение данных о ресурсе.
- POST — создание нового ресурса.
- PATCH — частичное обновление ресурса.
- PUT — обновление существующего ресурса.
- DELETE — удаление ресурса.
Безопасность в REST API
Безопасность является одним из ключевых моментов в работе REST API. Защита механизмов обеспечивается при помощи:
- Аутентификации. Аутентификация и авторизация позволяет узнать, откуда делается запрос. Доступно несколько методов аутентификации: Basic Authentication, JWT (JSON Web Token), OAuth 2.0 и др.
- Шифрования и HTTPS. Использование данных инструментов защищает данные от перехвата. Как правило, все API защищены HTTPS по умолчанию.
- Защиты от атак и валидирования данных. Благодаря проверке вводных данных предоставляются SQL-инъекции и XSS-атаки.
- Логирования. Мониторинг запросов и ошибок позволяют своевременно устанавливать подозрительную активность и блокировать ее.
- Ограничения доступа к данным и запросов. Rate Limiting уберегает API от перегрузок, а ролевая модель RBAC поможет скрыть данные, которые не должны быть видны пользователям.
Для чего используют REST API
REST API может использоваться для разных целей, среди которых:
- Работа с базами данных и серверными ресурсами в большинстве современных веб-приложений.
- Поддержка мобильных приложений (например, для запроса баланса счета в банковских приложениях).
- Интеграции между сервисами. Например, возможность авторизоваться в одной социальной сети через другую — заслуга REST API.
- Автоматизация и DevOps.
Таким образом, REST API позволяет увеличивать пропускную способность с сервером, соединять мобильные приложения с серверной частью, масштабировать систему и пр.
FAQ
Где используется REST API?
REST API используется в большинстве веб-приложений, где требуется работа с базами данных и сервисами. Например, в мобильных приложениях, интернет-магазинах и пр.
Вывод
- REST API играет ключевую роль в использовании большинства веб-сервисов.
- При работе с REST API используются те же методы, что и для HTTP: GET, POST, PATCH, PUT, DELETE.
- REST API позволяет поддерживать высокую безопасность данных.