Что такое rest api

Архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Другими словами, REST — это набор правил того, как программисту организовать написание кода серверного приложения, чтобы все системы легко обменивались данными и приложение можно было масштабировать. REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы. В определённых случаях (интернет-магазины, поисковые системы; прочие системы, основанные на данных) это приводит к повышению производительности и упрощению архитектуры. В широком смысле, компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине. REST является альтернативой RPC.

В интернете вызов удалённой процедуры может представлять собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют «REST-запрос»), а необходимые данные передаются в качестве параметров запроса.

Для веб-служб, построенных с учётом REST (то есть не нарушающих накладываемых им ограничений), применяют термин «RESTful».

Oct. 19, 2023, Источник

REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль взаимодействия компонентов распределенной системы через интернет. Он предлагает набор ограничений для создания веб-сервисов, которые используют стандартные HTTP-методы для обмена данными между клиентом и сервером. Этот стиль был введен Роем Филдингом в его докторской диссертации в 2000 году и быстро стал популярным благодаря своей простоте, масштабируемости и гибкости.

Основные принципы:

1. Клиент-серверная архитектура: Разделение ответственности между клиентом (который запрашивает данные) и сервером (который предоставляет данные) улучшает масштабируемость и упрощает компоненты.

2. Без сохранения состояния (Stateless): Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для его выполнения. Сервер не сохраняет состояние клиента между запросами, что упрощает архитектуру.

3. Кэширование: Ответы сервера должны быть явно помечены как кэшируемые или некэшируемые, что уменьшает нагрузку на сервер и улучшает производительность за счет уменьшения задержки ответа.

4. Единообразный интерфейс: Определяет интерфейс взаимодействия между клиентом и сервером, упрощая и декапсулируя архитектуру системы.

5. Система слоев: Клиент не может знать, общается ли он непосредственно с сервером или с промежуточным узлом, что улучшает масштабируемость системы за счет использования балансировщиков нагрузки, кэшей и т.д.

6. Код по требованию (необязательно): Сервер может временно расширять или настраивать функциональность клиента, передавая ему исполняемый код.

Особенности:

  • Использование стандартных HTTP-методов: Таких как GET для получения данных, POST для создания новых ресурсов, PUT для обновления существующих ресурсов, DELETE для удаления ресурсов и т.д.
  • Работа с ресурсами: Каждый уникальный URL представляет собой некий ресурс, который может быть представлен в формате JSON, XML или других форматах.
  • Безопасность и авторизация: Хотя он сам по себе не определяет механизмов безопасности, обычно используются стандартные методы, такие как HTTPS, OAuth и токены JSON Web Token (JWT) для обеспечения безопасности данных и авторизации доступа.

REST API широко используется для создания веб-сервисов благодаря своей простоте, возможности масштабирования и поддержке стандартных HTTP-операций, делая его популярным выбором для разработки современных веб-приложений и микросервисов.

March 7, 2024, easyoffer