Skip to content

Обзор API ​

Базовый URL ​

Все API-эндпоинты доступны по пути /api/v1:

https://slozy.net/api/v1

Для локальной разработки:

http://localhost:8080/api/v1

Аутентификация ​

API использует JWT Bearer-токены. Токен передаётся в заголовке Authorization:

Authorization: Bearer <access_token>

Получить токен можно через эндпоинты /auth/register и /auth/login. Токен живёт 8 часов (настраивается через JWT_EXPIRATION). По истечении токен обновляется через /auth/refresh.

Формат ответов ​

Все ответы возвращаются в JSON. Успешные ответы:

json
{
  "success": true,
  "data": { ... }
}

Ответы со списками поддерживают пагинацию:

json
{
  "success": true,
  "data": {
    "items": [],
    "total": 42,
    "page": 1,
    "page_size": 10,
    "has_next": true
  }
}

Ответы с ошибками:

json
{
  "success": false,
  "error": "Описание ошибки",
  "details": "Детали (могут отсутствовать)"
}

HTTP-статусы ​

КодОписание
200Успешный запрос
201Успешное создание
204Успешное удаление
400Некорректный запрос
401Не авторизован
403Доступ запрещён
404Ресурс не найден
413Слишком большое тело запроса
429Превышен rate limit
500Внутренняя ошибка сервера

Rate Limiting ​

Действуют два уровня ограничений:

  • Глобальный: 1000 запросов в минуту
  • На IP: 100 запросов в минуту

При превышении возвращается 429 Too Many Requests. Заголовки ответа содержат информацию о лимитах:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 2026-06-11T14:00:00Z

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

API версионируется через путь: /api/v1/, /api/v2/ и т.д. Обратная совместимость в рамках одной мажорной версии гарантируется. Изменения, нарушающие совместимость, публикуются в release notes.

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

ГруппаПрефиксОписание
Auth/api/v1/authРегистрация, вход, выход, обновление токенов
SLO/api/v1/slosCRUD для Service Level Objectives
Prometheus/api/v1/prometheusSLO-расчёты, метрики в реальном времени
Notifications/api/v1/notificationsКаналы оповещений, правила, история
Cache/api/v1/cacheУправление кэшем, статистика, конфигурация
Health/api/v1/healthПроверки состояния сервиса