API: Сообщения
Чтение истории сообщений и полное удаление переписок. Префикс: /messages. Файл: srv/app/api/endpoints/messages.py
Обзор эндпоинтов
| Метод | Путь | Описание |
|---|---|---|
| GET | /messages/history/{contact_id} | Получить историю сообщений с собеседником |
| GET | /messages/last | Получить последнее сообщение диалога |
| DELETE | /messages/all | Полный сброс: удалить все свои сообщения и чаты |
Пагинация истории сообщений (GET /messages/history/{contact_id})
Эндпоинт поддерживает два режима пагинации:
1. Классическая пагинация (Legacy)
Использует параметры offset (смещение) и limit (количество сообщений). Возвращает плоский массив сообщений, отсортированный по ID в порядке убывания.
2. Умная пагинация с якорем (v2_pagination=True)
Используется для быстрого открытия чата на первом непрочитанном сообщении. Параметры:
anchor_id(опционально) — ID сообщения, вокруг которого нужно собрать историю. Если не передан, сервер ищет первое непрочитанное сообщение от собеседника.limit_before— количество сообщений до якоря (более старые).limit_after— количество сообщений после якоря (более новые).
Если непрочитанных сообщений нет, сервер просто возвращает последние limit_before сообщений.
{
"anchor_id": 4820,
"messages": [
{
"id": 4822,
"sender_id": 102,
"receiver_id": 100,
"content": "Base64EncryptedText...",
"timestamp": "2026-06-23T12:00:00",
"read_at": null,
"message_type": "text"
},
{
"id": 4820, // Якорь
"sender_id": 102,
"receiver_id": 100,
"content": "Base64EncryptedText...",
"timestamp": "2026-06-23T11:59:00",
"read_at": null,
"message_type": "text"
}
]
}
Полная очистка (DELETE /messages/all)
Этот метод удаляет все сообщения с участием текущего пользователя из базы данных. После удаления сервер отправляет WebSocket событие типа chat_deleted всем пользователям, с которыми у текущего пользователя были диалоги. Это удаляет чаты из интерфейса собеседников в реальном времени.