WebSocket API (STOMP)
MastermindCMS stellt einen STOMP-Broker über WebSocket bereit:- Native WebSocket-Endpoint:
/ws - SockJS-Fallback-Endpoint:
/sock - Application Destination Prefix:
/request - Broker Destinations:
/topic/**,/user/topic/**und/queue/**
Subscribe
Standard-JSON-Responses:/topic/msm/json/user/topic/msm/json
/topic/msm/render/user/topic/msm/render
/topic/** publizieren (z. B. /topic/jobs, /topic/job/{id}, /topic/order/{id}, /topic/customer/{id}).
Publish-Destinations
Render (SSR):
JSON:
Request- und Response-Format
Alle WebSocket-Requests basieren aufBasicRequestMessage:
path: aktueller Page-Pfad (Request-Kontext)payload: optionale Daten (abhängig von der Destination)elements: optionale Liste von Element-Payloads für Partial UpdatesactionId: optionale Correlation-Id (empfohlen)eventType:USER,SHAREDoderGLOBALsharedEndpoint: optionaler logischer Endpoint-Name (Antwort kommt an/topic/<sharedEndpoint>)
BeanRequestMessage:scope,beanId,functionName,argsRepositoryRequestMessage:repositoryId,requestTypeDocumentRequestMessage:databaseName,collectionName,requestType
Beispiel (Browser)
Hinweise zur Autorisierung
- JSON-Handler akzeptieren optional ein JWT über den nativen Header
Authorization: Bearer <token>. - Einige Operationen erfordern höhere Berechtigungen (z. B. Repository-Updates und Datenbank-Schreiboperationen). Bei fehlendem Zugriff antwortet das Backend mit
{ "error": "Access denied", ... }.
REST API
REST wird verwendet für:- Authentifizierung (
/api/v1/authenticate,/api/v1/logout, Token-Operationen) - Datei- und Daten-Operationen (upload/remove/download)
- Report-Export und Asset-Listing
- Integrationen (z. B. Delivery/Payment Provider)
- HTTP-Fallback für Service-Calls (
/api/v1/bean/request)
Häufige Header
Einige Endpoints (insbesondere/api/v1/bean/request) benötigen Context-Header:
Authentifizierung
POST /api/v1/authenticate authentifiziert einen Benutzer (typischerweise via Session/Remember-me Cookies).
Um ein JWT für API-Calls zu erhalten, nutze POST /api/v1/auth/token (liefert { token, expires }). Ein Token kann mit POST /api/v1/auth/validate-token validiert werden.
POST /api/v1/logout meldet die aktuelle Session ab und erwartet einen JSON-Body mit role (z. B. "user" oder "admin").
Unified Service Call über HTTP
POST /api/v1/bean/request ruft eine Backend-Bean-Methode über denselben reflection-based Mechanismus auf wie die WebSocket API.
Erforderliche Header:
Site-ContextLang-Context
Uploads, Downloads, Assets, Reports
Beispiel: Bild hochladen
Delivery- und Payment-Integrationen
Einige Integrationen sind als REST-Endpoints verfügbar und werden von entsprechenden UI-Komponenten genutzt. Beispiele:/api/v1/cdek(Delivery Widget Service/Proxy)/api/v1/stripe(Stripe-Zahlungs-Webhook)/api/v1/yookassa(Payment Integration)
Passwort-Reset und Verifikation
Wenn E-Mail/Passwort-Flows aktiviert sind, kann MastermindCMS Endpoints wie diese bereitstellen:/api/v1/auth/verify/api/v1/auth/reset-password/api/v1/auth/change-password/api/v1/auth/save-password