BackendREST API

REST API: что это и почему ваш проект может ему не соответствовать

·MAGMA

Основные принципы REST API

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

Филдинг выделил шесть ключевых принципов или ограничений, которые определяют архитектуру REST:

Ограничения REST API

  1. Клиент-сервер: разделение обязанностей между клиентом и сервером позволяет масштабировать систему и упрощает разработку.
  2. Отсутствие состояния: каждый запрос от клиента должен содержать всю необходимую информацию для обработки запроса сервером; сервер не хранит состояние сессии.
  3. Кэшируемость: ответы сервера могут быть кэшированы для повышения производительности.
  4. Единообразие интерфейса: использование стандартных методов HTTP (GET, POST, PUT, DELETE) и понятной структуры URL.
  5. Слоистая система: архитектура должна поддерживать промежуточные слои (прокси-сервера, балансировщики нагрузки).
  6. Код по запросу (опционально): возможность динамической загрузки исполняемого кода.

Почему большинство API нарушают эти ограничения?

На практике многие разработчики создают так называемые "JSON API", которые формально используют HTTP-методы и возвращают данные в формате JSON, но игнорируют некоторые важные аспекты REST:

  • Часто нарушается принцип отсутствия состояния, когда сервер сохраняет сессионные данные о пользователе.
  • Не всегда соблюдается единообразие интерфейса, например, используются нестандартные методы или сложные пути запросов.
  • Кэширование ответов часто реализуется неправильно или вообще отсутствует.

Таким образом, хотя такие API называют RESTful, они редко полностью следуют всем ограничениям REST.

Вернуться к блогу
Почему ваш REST API может быть неправильным? — MAGMA