Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 4.36 KB

File metadata and controls

113 lines (76 loc) · 4.36 KB

starterKit API

Справочник по API-контрактам для проектов, создаваемых на этом шаблоне

Contracts Docs


Содержание


Базовые принципы

Этот документ не фиксирует API готового продукта. Он задаёт правила оформления и ожидания для будущих сервисов, которые будут добавлены в репозиторий

Принцип Смысл
Контракт прежде реализации Сначала описывается формат, потом код
Нейтральность Документ не привязан к конкретному домену
Единообразие Все API-документы следуют одной структуре
Ясность По документу можно понять, что и где искать

Структура контрактов

Для каждого будущего приложения рекомендуется хранить собственный API-раздел внутри docs/ или рядом с соответствующим модулем

Что фиксировать

  • базовый префикс маршрутов;
  • форматы входных и выходных данных;
  • правила авторизации, если они есть;
  • соглашение об ошибках;
  • особенности пагинации и сортировки;
  • ссылку на актуальную спецификацию, если она генерируется автоматически

Группы эндпоинтов

Пока репозиторий пустой, разделы ниже используются как ориентир для будущих сервисов.

Группа Назначение
health Проверка доступности сервиса
auth Аутентификация и управление сессией
profile Пользовательские данные и настройки
admin Управляющие операции для администраторов
system Служебные и диагностические маршруты

Формат запросов и ответов

Параметр Рекомендация
Формат тел JSON
Кодировка UTF-8
Имена полей Понятные и стабильные
Временные значения ISO 8601
Версионирование Через префикс маршрута или отдельную спецификацию

Базовый ответ

{
	"success": true,
	"data": {},
	"meta": {}
}

Ошибки и статусы

Ситуация Подход
Успешный запрос Возвращается корректный JSON-ответ
Ошибка валидации Возвращается понятное сообщение с деталями
Ошибка доступа Возвращается код, отражающий отсутствие прав
Системная ошибка Возвращается нейтральное сообщение без утечки лишних деталей

Если в проекте появится полноценная OpenAPI-спецификация, именно она становится источником истины для API