Skip to main content
Nutze diesen Ansatz, wenn du volle Kontrolle über Networking haben willst (eigener STOMP-Client, eigener REST-Layer, eigene Auth/Token-Verwaltung).

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
Standard-HTML-(SSR)-Render-Responses:
  • /topic/msm/render
  • /user/topic/msm/render
Das Backend kann außerdem Domain-Events an eigene Destinations unter /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 auf BasicRequestMessage:
  • path: aktueller Page-Pfad (Request-Kontext)
  • payload: optionale Daten (abhängig von der Destination)
  • elements: optionale Liste von Element-Payloads für Partial Updates
  • actionId: optionale Correlation-Id (empfohlen)
  • eventType: USER, SHARED oder GLOBAL
  • sharedEndpoint: optionaler logischer Endpoint-Name (Antwort kommt an /topic/<sharedEndpoint>)
Spezialisierte Request-Messages ergänzen Felder:
  • BeanRequestMessage: scope, beanId, functionName, args
  • RepositoryRequestMessage: repositoryId, requestType
  • DocumentRequestMessage: databaseName, collectionName, requestType
JSON-Responses haben die Form:

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-Context
  • Lang-Context
Request-Beispiel:
Response-Beispiel:

Uploads, Downloads, Assets, Reports

Beispiel: Bild hochladen
Beispiel: Report exportieren

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