logo
Ещё

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 позволяет поддерживать высокую безопасность данных.