Перейти к основному содержимому

Коды ошибок и пагинация

HTTP-статусы

КодНазваниеКогда возникает
200OKЗапрос выполнен
201CreatedРесурс создан
204No ContentУдаление успешно
400Bad RequestОшибка в теле запроса или параметрах
401UnauthorizedТокен не передан, истёк или невалиден
403ForbiddenНет прав на это действие
404Not FoundРесурс не существует
409ConflictКонфликт (например, запись уже занята)
422Unprocessable EntityОшибка валидации
429Too Many RequestsПревышен лимит запросов
500Internal Server ErrorОшибка сервера
502Bad GatewayВнешний сервис недоступен (YClients и т.д.)
504Gateway TimeoutТаймаут внешнего сервиса

Формат ошибки

{
"detail": "Описание ошибки",
"code": "error_code"
}

Ошибка валидации (400):

{
"phone": ["Введите корректный номер телефона."],
"date": ["Это поле обязательно."]
}

Пагинация

Списочные эндпоинты возвращают пагинированный ответ:

{
"count": 150,
"next": "https://api.salonai.ru/api/clients/?page=2",
"previous": null,
"results": [...]
}

Параметры:

ПараметрТипОписание
pageintegerНомер страницы (по умолчанию 1)
page_sizeintegerКол-во записей на странице (по умолчанию 20)
GET /api/clients/?page=2&page_size=50

Фильтрация и сортировка

# Фильтрация
GET /api/records/?status=confirmed&date=2026-08-01

# Сортировка по убыванию
GET /api/records/?ordering=-created_at

# Поиск
GET /api/clients/?search=Иванова

Формат дат

Все даты в формате ISO 8601:

2026-08-01T10:30:00Z ← UTC
2026-08-01T13:30:00+03:00 ← Московское время
2026-08-01 ← только дата

Лимиты запросов

При превышении лимита:

HTTP 429 Too Many Requests
Retry-After: 60