Gymterview
junior

Что такое ресурс в REST?

Ресурс — ключевая абстракция в REST. Ресурсом может быть любая именованная информация: документ, изображение, коллекция других ресурсов, временная сущность (например, текущая погода) и т.д.

Каждый ресурс идентифицируется одним или более URI (Uniform Resource Identifier):

Пример
/api/users          — коллекция пользователей
/api/users/42       — конкретный пользователь с id=42
/api/users/42/orders — заказы пользователя с id=42

Типы ресурсов

Тип Описание Пример URI
Коллекция (Collection) Набор ресурсов одного типа /api/users
Элемент (Document) Единичный ресурс /api/users/42
Хранилище (Store) Управляемое клиентом хранилище ресурсов /api/users/42/favorites
Контроллер (Controller) Процедурная концепция для действий вне CRUD /api/users/42/activate

Представление ресурса — это конкретное отображение состояния ресурса в определённом формате (JSON, XML, HTML). Один и тот же ресурс может иметь разные представления в зависимости от заголовка Accept.

Пример
{
  "id": 42,
  "name": "Иван Петров",
  "email": "ivan@example.com"
}

На собеседовании: важно объяснить разницу между ресурсом и его представлением. Ресурс — это абстракция (пользователь), а представление — конкретное отображение в формате JSON/XML. Частая ошибка — считать, что ресурс = запись в базе данных.