OpenAPI verwenden
Workspace stellt eine OpenAPI-Spezifikation für technische Analyse, Contract-Checks, Client-Generierung und Privacy-Prüfung bereit. Diese Seite zeigt, wie Sie die Datei beziehen, lesen und sinnvoll einsetzen.
Die vollständige OpenAPI-Datei ist nicht Teil dieses Public-Docs-Builds. Sie wird von der jeweiligen Workspace-Instanz erzeugt und beschreibt den Stand dieser laufenden Serverversion.
Wann OpenAPI hilft
Nutzen Sie OpenAPI, wenn Sie:
- verfügbare Pfade, Methoden und DTO-Strukturen prüfen möchten,
- Request- und Response-Schemas für Integrationen auswerten,
- Testclients oder typisierte DTOs generieren,
- Vertragsänderungen zwischen Versionen vergleichen,
- Privacy-Metadaten wie
x-nucleus-privacyauswerten.
Nutzen Sie OpenAPI nicht als Ersatz für Runtime-Discovery. Wenn Workspace für einen Kontext Discovery, Entry Points oder Ressourcen-Meta veröffentlicht, verwenden Clients diese Laufzeitverträge.
OpenAPI-Datei abrufen
Die OpenAPI-Spezifikation liegt auf einer laufenden Workspace-Instanz unter:
/api/v1/docs/openapi.jsonDieser Endpunkt ist für lokale Diagnose und Betreiberzugriff gedacht. Er ist loopback-geschützt und wird nicht als allgemein öffentlicher Internet-Endpunkt behandelt.
Rufen Sie die Datei deshalb auf dem Server selbst oder über ein SSH-Portforwarding ab:
ssh -L 18080:127.0.0.1:8080 ops@workspace-host
curl -fsS http://127.0.0.1:18080/api/v1/docs/openapi.json -o openapi.jsonErsetzen Sie 8080 durch den lokalen Port, auf dem Ihre Workspace-Instanz auf dem Server lauscht.
Im Browser ansehen
Workspace stellt für lokale Diagnose zusätzlich eine Scalar-Ansicht bereit:
/api/v1/docs/Auch diese Ansicht ist loopback-geschützt. Öffnen Sie sie lokal auf dem Server oder über denselben SSH-Tunnel:
http://127.0.0.1:18080/api/v1/docs/Die Ansicht lädt openapi.json relativ aus demselben Pfad.
Tenant-Kontext setzen
Viele Workspace-APIs sind tenantgebunden. Authentifizierung allein wählt bei nicht sessiongebundenen API-Aufrufen keinen Tenant aus. Setzen Sie deshalb für tenantgebundene Requests den Header X-Tenant-ID auf die UUID des Mandanten, sofern Ihre Session oder Ihr Credential nicht bereits fest an einen Tenant gebunden ist:
Authorization: Basic <credentials>
X-Tenant-ID: 11111111-1111-1111-1111-111111111111
Accept: application/jsonDas gilt auch, wenn Sie die OpenAPI-Datei in ein API-Tool wie Bruno importieren: Prüfen Sie nach dem Import, ob X-Tenant-ID als Header gesetzt ist. Verwenden Sie die Tenant-UUID, nicht einen lokalen Profilalias wie stage-shop oder mandant-a.
Wenn ein Request mit 403 ERR_TENANT_REQUIRED und dem Hinweis Tenant selection required fehlschlägt, war die Identity zwar authentifiziert, aber der Request hatte keinen aktiven Tenant-Kontext. Setzen Sie X-Tenant-ID, prüfen Sie die UUID und stellen Sie sicher, dass die authentifizierte Identity Mitglied dieses Tenants ist.
Für die fachliche Einordnung von Benutzerkonto, Mitgliedschaft, Profilbindung, aktiver Sitzung und System-Mandant nutzen Sie Mandanten, Benutzerkonten und Systemsicht.
Datei prüfen
Prüfen Sie zuerst, ob die Datei lesbar ist und wie viele Pfade sie enthält:
jq '.openapi, .info.title, .info.version, (.paths | keys | length)' openapi.jsonFür einen schnellen Überblick über veröffentlichte Pfade:
jq -r '.paths | keys[]' openapi.json | sortFür Methoden eines bestimmten Pfads:
jq '.paths["/api/v1/meta/discovery"] | keys' openapi.jsonOpenAPI-Struktur lesen
Die wichtigsten Bereiche sind:
| Bereich | Bedeutung |
|---|---|
openapi | Version des OpenAPI-Formats. |
info | Titel, Version und Beschreibung der Spezifikation. |
paths | HTTP-Pfade mit Methoden, Parametern, Request-Body und Responses. |
components.schemas | Wiederverwendbare DTO- und Schema-Definitionen. |
components.securitySchemes | Beschreibt Authentifizierungsschemata wie Bearer- oder BasicAuth. |
paths.*.*.security | Beschreibt Sicherheitsanforderungen einer geschützten Operation. |
tags | Gruppiert Endpunkte thematisch, wenn der Generator Tags setzt. |
Ein Pfad beschreibt die technische Form eines HTTP-Vertrags. Prüfen Sie dort:
- Methode, zum Beispiel
get,post,patchoderdelete, parametersfür Pfad- und Query-Parameter,- Header-Parameter wie
X-Tenant-IDfür tenantgebundene Operationen, requestBodyfür schreibende JSON-Payloads,responsesfür Antwortstruktur und Statusklassen,- Schema-Referenzen unter
$ref.
Schemas interpretieren
Viele Operationen verweisen auf Schemas in components.schemas:
jq '.components.schemas | keys[]' openapi.jsonWenn eine Operation auf ein Schema verweist, lösen Sie den $ref auf:
jq '.components.schemas.ProductVariant' openapi.jsonBeachten Sie dabei:
readOnly-Felder kommen aus dem Server und gehören normalerweise nicht in Create- oder Update-Payloads.writeOnly-Felder dürfen in Requests vorkommen, erscheinen aber nicht zwingend in Antworten.requiredbeschreibt technische Pflichtfelder des Schemas, ersetzt aber keine fachliche Validierung.- Enum-Werte beschreiben bekannte technische Werte. Prüfen Sie trotzdem Ressourcen-Meta, wenn eine Ressource zur Laufzeit eigene Optionen veröffentlicht.
Privacy-Metadaten auswerten
Workspace kann Felder in OpenAPI mit x-nucleus-privacy markieren. Nutzen Sie nucli privacy, wenn Sie diese Felder gezielt auswerten möchten:
nucli privacy --file openapi.json --json
nucli privacy --file openapi.json --path /api/v1/contacts --json
nucli privacy --file openapi.json --category contact.email
nucli privacy --file openapi.json --classification personalEin leerer Treffer bedeutet nicht automatisch, dass eine fachliche Antwort frei von Personen- oder Geschäftsdaten ist. Er bedeutet nur, dass die geprüfte Spezifikation keine passende Privacy-Annotation enthält.
Mit Discovery kombinieren
OpenAPI beschreibt technische Strukturen. Für robuste Clients brauchen Sie trotzdem Runtime-Discovery:
| Aufgabe | Verwenden |
|---|---|
| Serverfähigkeit vor Login prüfen | GET /api/v1/meta/discovery |
| Öffentliche Auth- und Onboarding-Einstiege finden | GET /api/v1/meta/entrypoints |
| Tenantgebundene Ressourcen finden | GET /api/v1/profile/entrypoints |
| Erlaubte Aktionen und Felder einer Ressource prüfen | GET /api/v1/{resource}/_meta |
| DTO-Strukturen und Privacy-Annotationen analysieren | openapi.json |
Starten Sie Integrationen daher discovery-first. Verwenden Sie OpenAPI für Analyse, Tests, Codegenerierung und Vertragsvergleich, aber bauen Sie kontextabhängige Aktions-URLs aus den vom Server veröffentlichten Runtime-Verträgen.
OpenAPI zwischen Versionen vergleichen
Speichern Sie Spezifikationen versioniert in einem geschützten Arbeitsbereich:
curl -fsS http://127.0.0.1:18080/api/v1/docs/openapi.json -o openapi-2.31.0.json
curl -fsS http://127.0.0.1:18081/api/v1/docs/openapi.json -o openapi-2.32.0.jsonVergleichen Sie zuerst Pfade:
jq -r '.paths | keys[]' openapi-2.31.0.json | sort > paths-old.txt
jq -r '.paths | keys[]' openapi-2.32.0.json | sort > paths-new.txt
diff -u paths-old.txt paths-new.txtVergleichen Sie danach gezielt Schemas, die Ihre Integration nutzt. Ein reiner OpenAPI-Diff ersetzt keine fachlichen Regressionstests gegen eine laufende Workspace-Instanz.
Grenzen
OpenAPI beantwortet nicht jede Integrationsfrage.
Wichtig:
- Die Public Docs werden nicht aus
openapi.jsongeneriert. - Diese Seite erklärt den Umgang mit der Spezifikation, sie ist keine vollständige API-Referenz.
- Die Spezifikation beschreibt den Stand der laufenden Serverversion.
- Rechte, Tenant-Kontext, aktivierte Funktionen und veröffentlichte Ressourcen können zur Laufzeit variieren.
- Verwenden Sie für konkrete Ressourcenaktionen weiterhin Discovery und Ressourcen-Meta.
Nächste Schritte
CLI und reproduzierbare API-Aufrufe: Lesen Sie CLI und API.
Discovery und Ressourcen-Meta: Lesen Sie Discovery und Ressourcen.
Storefront- und Commerce-Verträge: Starten Sie mit B2B-Onlineshop bauen.