WebSocket API (STOMP)
MastermindCMS предоставляет STOMP‑брокер поверх WebSocket:- Native WebSocket endpoint:
/ws - SockJS fallback endpoint:
/sock - Application destination prefix:
/request - Broker destinations:
/topic/**,/user/topic/**и/queue/**
Подписки
Стандартные JSON‑ответы:/topic/msm/json/user/topic/msm/json
/topic/msm/render/user/topic/msm/render
/topic/** (например /topic/jobs, /topic/job/{id}, /topic/order/{id}, /topic/customer/{id}).
Destinations для publish
Рендер (SSR):
JSON:
Формат запроса и ответа
Все WebSocket‑запросы основаны наBasicRequestMessage:
path: путь текущей страницы (контекст запроса)payload: опциональные данные (зависит от destination)elements: опциональный список payload’ов элементов для частичных обновленийactionId: опциональный correlation id (рекомендуется)eventType:USER,SHAREDилиGLOBALsharedEndpoint: опциональный логический endpoint (ответ приходит в/topic/<sharedEndpoint>)
BeanRequestMessage:scope,beanId,functionName,argsRepositoryRequestMessage:repositoryId,requestTypeDocumentRequestMessage:databaseName,collectionName,requestType
Пример (browser)
Примечания по авторизации
- JSON‑обработчики могут принимать JWT через native header
Authorization: Bearer <token>. - Для части операций нужны повышенные права (например обновления репозитория и запись в БД). При отсутствии доступа бэкенд отвечает
{ "error": "Access denied", ... }.
REST API
REST используется для:- аутентификации (
/api/v1/authenticate,/api/v1/logout, операции с токеном) - операций с файлами/данными (upload/remove/download)
- экспорта отчётов и получения ассетов
- интеграций (например, провайдеры доставки/оплаты)
- HTTP‑фолбэка для сервисных вызовов (
/api/v1/bean/request)
Общие заголовки
Некоторые endpoints (в частности/api/v1/bean/request) требуют заголовки контекста:
Аутентификация
POST /api/v1/authenticate аутентифицирует пользователя (обычно через session/remember‑me cookies).
Чтобы получить JWT для API‑вызовов, используйте POST /api/v1/auth/token (возвращает { token, expires }). Проверить токен можно через POST /api/v1/auth/validate-token.
POST /api/v1/logout выполняет logout текущей сессии и ожидает JSON body с role (например "user" или "admin").
Универсальный сервисный вызов по HTTP
POST /api/v1/bean/request вызывает метод backend‑bean тем же reflection‑based механизмом, что и WebSocket API.
Обязательные заголовки:
Site-ContextLang-Context
Uploads, downloads, assets, reports
Пример: загрузка изображения
Интеграции доставки и оплаты
Некоторые интеграции доступны как REST endpoints и используются соответствующими UI‑компонентами. Примеры:/api/v1/cdek(сервис/прокси для виджета доставки)/api/v1/stripe(webhook платежей Stripe)/api/v1/yookassa(интеграция оплаты)
Сброс пароля и верификация
Если включены email/password flows, MastermindCMS может предоставлять endpoints:/api/v1/auth/verify/api/v1/auth/reset-password/api/v1/auth/change-password/api/v1/auth/save-password