Продолжая тему написания приложений с качественным кодом, разберемся сегодня в теме REST. Этот термин также является одним из наиболее популярных в современной веб-разработке. Но что же он значит?
Возьмем простое и понятное определение из поисковика:
REST — это набор правил того, как программисту организовать написание кода серверного приложения, чтобы все системы легко обменивались данными и приложение можно было масштабировать.
Кажется стало чуть понятней, но все еще малоинформативно. Копнем глубже?
Вот наше определение данного термина:
REST (Representational state transfer) — это архитектурный стиль написания API (интерфейса между клиентской и серверной стороной). Этот стиль тесно завязан на HTTP протоколе, так как идентификация действия определяется по HTTP-методу (GET, POST, UPDATE, DELETE). В свою очередь идентификация конечного ресурса определяется по URL-адресу.
А еще REST включает набор принципов:
Вот теперь становится яснее, при чем здесь качество кода. По своей сути REST — набор наиболее удачных практик для реализации современных клиент-серверных приложений. Плюс REST архитектуры в том, что ее API может быть легко задокументирован с помощью набора инструментов и спецификации OpenAPI, которая совместима с большинством современных веб-фреймворков. OpenAPI рассматривается как универсальный интерфейс для клиентов по взаимодействию с сервисами (серверами).
Примеры:
В современных веб-сервисах, построенных на REST, фронт приложения является фактически клиентской частью, в то время как бэк — серверной.
Но это не единственный способ использования данного стиля взаимодействия.
Межсервисные интеграции также могут быть реализованы на REST, большинство современных сервисов открыто предоставляют свой интеграционный API.
Вы можете связать свое веб-приложение с CRM-системой, S3 хранилищем, платежной системой, картами, социальной сетью, с другим своим веб-приложением и еще с кучей сервисов, и все это — используя под капотом REST API.
Выглядит как отличное и универсальное решение? Да, в определенных случаях. Но скрывает в себе и некоторые недостатки:
Здесь стоит упомянуть о брокерах сообщений, которые способны помочь в разрешении данных проблем, заменив REST API, но это оставим на следующий пост. И все же REST API является популярным и широко используемым стандартом веб-сервисов, который позволяет создавать эффективные и масштабируемые приложения. Изучайте плюсы и минусы REST, грамотно используйте его преимущества и будет вам счастье.
Возьмем простое и понятное определение из поисковика:
REST — это набор правил того, как программисту организовать написание кода серверного приложения, чтобы все системы легко обменивались данными и приложение можно было масштабировать.
Кажется стало чуть понятней, но все еще малоинформативно. Копнем глубже?
Вот наше определение данного термина:
REST (Representational state transfer) — это архитектурный стиль написания API (интерфейса между клиентской и серверной стороной). Этот стиль тесно завязан на HTTP протоколе, так как идентификация действия определяется по HTTP-методу (GET, POST, UPDATE, DELETE). В свою очередь идентификация конечного ресурса определяется по URL-адресу.
А еще REST включает набор принципов:
- Хранит данные клиента на стороне клиента
- Является Stateless
- Использует кэширование
- Декларирует единообразие интерфейса (HTTP-методы, JSON/XML форматы данных)
- Позволяет использовать слои: например, балансировщики нагрузки, кеширование, шифрование
Вот теперь становится яснее, при чем здесь качество кода. По своей сути REST — набор наиболее удачных практик для реализации современных клиент-серверных приложений. Плюс REST архитектуры в том, что ее API может быть легко задокументирован с помощью набора инструментов и спецификации OpenAPI, которая совместима с большинством современных веб-фреймворков. OpenAPI рассматривается как универсальный интерфейс для клиентов по взаимодействию с сервисами (серверами).
Примеры:
- Redoc
- Swagger
В современных веб-сервисах, построенных на REST, фронт приложения является фактически клиентской частью, в то время как бэк — серверной.
Но это не единственный способ использования данного стиля взаимодействия.
Межсервисные интеграции также могут быть реализованы на REST, большинство современных сервисов открыто предоставляют свой интеграционный API.
Вы можете связать свое веб-приложение с CRM-системой, S3 хранилищем, платежной системой, картами, социальной сетью, с другим своим веб-приложением и еще с кучей сервисов, и все это — используя под капотом REST API.
Выглядит как отличное и универсальное решение? Да, в определенных случаях. Но скрывает в себе и некоторые недостатки:
- Недостаточная гибкость: ограничен набором операций (GET, POST, PUT, DELETE)
- Неэффективность при обработке множества запросов: когда требуется выполнить множество последовательных запросов для получения большого объема данных.
- Сложность разработки: если необходимо поддерживать множество операций и типов данных.
- Неэффективность при работе с большими файлами: может привести к большим задержкам и нагрузке на сервер.
Здесь стоит упомянуть о брокерах сообщений, которые способны помочь в разрешении данных проблем, заменив REST API, но это оставим на следующий пост. И все же REST API является популярным и широко используемым стандартом веб-сервисов, который позволяет создавать эффективные и масштабируемые приложения. Изучайте плюсы и минусы REST, грамотно используйте его преимущества и будет вам счастье.