Schnittstelle (OpenAPI)
Die Services von OMDS LD sind in einer OpenAPI-Datei beschrieben. Sie ist der Vertrag der Struktur: Operationen, Pfade, Statuscodes, Fehlerobjekte und Beispiele. Das Verhalten der Operationen erklären die Seiten zum Prozesswissen und zum Produktwissen.
Umsetzungsstand: Die Datei ist ein Entwurf. Sie beschreibt die Operationen, die die Muster-Versicherung anbietet; weitere Geschäftsobjekte wie Offert und Antrag folgen nach denselben Regeln.
Pfade und Methoden
-
Pfade benennen Ressourcen, nicht Nachrichten:
/products,/tariff-inquiry,/calculations,/business-cases/{caseId}/calculation. -
Die Methode folgt der Bedeutung.
GETliest und ist cachebar; die Eingaben einer Auskunft stehen in Query-Parametern, etwaGET /products?date=2022-06-01.POSTauf eine Sammlung erzeugt ein Geschäftsobjekt und antwortet mit201 Createdund dessen Adresse inLocation. Die Tarifauskunft istPOST, weil sie eine vollständige Instanz als Body braucht; sie speichert trotzdem nichts. -
Bearbeitungen sind benannte Methoden am Geschäftsobjekt:
POST /business-cases/{caseId}/calculation:addComponent. Der Name nach dem Doppelpunkt ist dieoperationId. -
Die IRI eines Geschäftsobjekts ist seine Adresse.
GETauf die IRI der Berechnung liefert die Berechnung, die Knoten ihres Entwurfs liegen darunter (…/calculation/instance,…/calculation/c1). -
Keine Angabe doppelt. Was im Pfad steht, etwa der Geschäftsfall, steht nicht im Body.
-
Auskünfte weisen den Weg.
listProductsnennt jedes Produkt mit Bezeichnung und den FolgeschrittenreadProductKnowledge,readDefaultInstanceund, mit Entwurf am Server,createCalculation.readDefaultInstanceliefert die Default-Instanz – Pflichtbausteine in Mindestzahl, Attribute mit Vorbelegung – mit den IRIs der Tarifauskunft (…/tariff-inquiry#instance,#c1). Um die Risikoobjekte ergänzt, ist sie der Body voninquireTariff; der Folgeschritt nennt die Shapes der Risikoobjekte. Die Verweisregelbc:riskObjectRulean einem Knoten sagt, dass die Risikoobjekte dort miti:riskObjecthängen, meist an der Wurzel.
| Operation | Methode und Pfad |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Drei Zugänge
| Zugang | Zweck |
|---|---|
Zum Lesen: alle Operationen mit Beschreibung, Statuscodes und Beispielen. Die Seite setzt keine Aufrufe ab. |
|
Maschinenlesbar, mit eingebetteten Beispielen: für Code-Generatoren, eigene Werkzeuge und KI-Agenten. |
|
Zum Ausprobieren im Beispielserver: Die Operationen lassen sich gegen die drei Beispielversicherer aufrufen, die Beispiele sind vorbefüllt. |
Der API-Explorer eignet sich für einzelne Aufrufe. Einen Entwurf über mehrere Schritte durchzuspielen verlangt dort, die Kennung des Geschäftsfalls von Aufruf zu Aufruf zu übernehmen; dafür ist der Muster-Vermittler mit seinem Entwurfs-Editor der bessere Weg.
Aufbau der Datei
-
Nutzdaten sind JSON-LD (
application/ld+json) im Vokabular der Norm. Ihre Struktur legen die SHACL-Shapes fest. Die Erweiterungx-omds-request-shapenennt je Operation die Shape des Requests. Die Request-Shapes sind Teil der Norm, in SHACL Core; ein Client oder KI-Agent prüft einen Request damit vor dem Absenden, auch ob ein Prädikat falsch geschrieben ist.x-omds-request-shape-from-cataloguekennzeichnet Operationen, bei denen der Katalog des Versicherers eigene Shapes ergänzt, etwa für die Fahrzeugvorlagen. -
Request-Schemas. Den Body jeder Operation mit Request beschreibt ein JSON Schema (2020-12), das aus ihrer Request-Shape erzeugt ist und die kanonische Form zeigt. Die Referenzseite listet damit die Felder je Operation, Code-Generatoren und MCP-Server erhalten ein Eingabeschema. Das JSON Schema prüft die Struktur; maßgeblich bleibt die Shape. Die Antworten sind JSON-LD ohne eigenes Schema.
-
Folgeschritte. Jede Antwort zu einem Geschäftsfall nennt die zulässigen Folgeschritte (
bc:nextStep). Derenbc:operationist dieoperationIdder OpenAPI-Datei undbc:expectseine der Shapes ausx-omds-request-shape. Ein Client folgt den Folgeschritten, statt den Ablauf vorab zu kennen. Für KI-Agenten ist dieoperationIdzugleich der Name des Werkzeugs eines MCP-Servers, der auf der OpenAPI-Datei aufsetzt. -
Operationsarten.
x-omds-operation-kindordnet jede Operation einer Operationsart zu:inquiry(Auskunft),creation(Erzeugung) undediting(Bearbeitung). -
Fehler sind Problem Details nach RFC 9457 mit einem
typeunterhttps://vvo.at/omds/ld/problems/, etwatarget-not-in-draftoderwrong-state. Eine abgelehnte Anfrage ändert nichts. -
Beispiele. Jede Operation hat ein Beispiel für Request und Antwort. Jede Beispielantwort ist die echte Antwort der Muster-Versicherung auf den Beispiel-Request, mit dem Geschäftsfall
https://insurer.example/omds-ld/api/business-cases/4711.
Kanonische Form der Requests
Ein Request lässt sich in JSON-LD auf viele Weisen schreiben. Die Norm legt eine Form fest, die ihre Beispiele zeigen und ihre Request-Schemas beschreiben:
-
"@context"verweist auf den normativen Contexthttps://vvo.at/omds/ld/context.jsonld. Er enthält die Präfixe der Vokabulare der Norm und legt für die Prädikate der Request-Shapes fest, ob ihr Wert eine IRI, ein Datum oder eine Menge ist. Die IRI ist ein Name: Server und Clients bilden sie auf ihre Kopie der Norm ab und laden sie nicht aus dem Netz. Eine Kopie liegt neben der Referenzseite (context.jsonld), ebenso die Request-Schemas (schemas/<Klasse>.schema.json). -
Klassen und Prädikate stehen als CURIEs (
bc:AddComponentRequest,bc:target), IRIs und Daten als Zeichenketten. IRIs aus den Katalogen der Versicherer sind ausgeschrieben. Der Wert eines Attributs (bc:value) ist ein Wertobjekt mit@valueund@type, weil sein Datentyp vom Attribut abhängt. -
Ein Prädikat, das mehrere Werte haben kann, steht immer als Array, auch mit einem Wert (
bc:riskObject). -
Die Tarifauskunft sendet die Instanz als
@graphmit genau einem Knoteni:Instanceund seinen Teilen.
{
"@context": "https://vvo.at/omds/ld/context.jsonld",
"@type": "bc:AddComponentRequest",
"bc:target": "https://insurer.example/omds-ld/api/business-cases/4711/calculation/instance",
"bc:component": "https://vvo.at/omds/ld/example/disrupto#ProdElement34"
}
Jedes andere JSON-LD, das zum selben Graphen expandiert, ist ebenfalls ein gültiger Request, etwa mit eigenem Inline-Context. Ein Versicherer lädt dabei keine entfernten Contexts außer dem normativen.