API · Урок 39

Проектирование REST API

Хороший API — предсказуемый: одни и те же правила во всех эндпоинтах, понятные статусы и выдача по частям. Разбираем практику, которой ждут на реальных проектах.

Статусы и формы ответов

// Стандартная форма ошибки
{
  "error": "VALIDATION",
  "message": "email обязательное поле",
  "fields": { "email": "пустое значение" }
}

Пагинация

// GET /api/v1/posts?limit=20&offset=40
{
  "data": [/* записи */],
  "pagination": { "limit": 20, "offset": 40, "total": 133 }
}

// Cursor-вариант (устойчивее к добавлениям)
// GET /api/v1/posts?limit=20&cursor=eyJ...  →  data + nextCursor

Версионирование и OpenAPI

💡
Проверяйте API глазами клиента: напишите маленький скрипт fetch, который проходит ваш «вкусный путь» — CRUD + пагинация + ошибки. Если приятно писать код на фронте — контракт удался.