Skip to content

Model Modul

Das Model-Modul ist ein wichtiger Bestandteil der CMI API und bietet eine benutzerfreundliche grafische Oberfläche, mit der man schnell und einfach Endpunkte für verschiedene Datenmodelle erstellen kann.

Das Modul ermöglicht es die API durch das Zusammenklicken von Typdefinitionen und den dazugehörigen Assoziationen und Feldern zu konfigurieren.
Die CMI API enthält keine initiale Konfiguration, sondern muss entlang der Bedürfnisse angepasst werden. Eine Konfiguration kann durch das mit ausgelieferte GUI vorgenommen werden (siehe hier). Dabei können die benötigten Typ-Definitionen und Felder ausgewählt und gespeichert werden.
Nachdem die Konfiguration gespeichert und abgeschlossen ist MUSS ein Neustart der CMI API oder ein recycle des APP-Pools erfolgen, um diese zu aktivieren.

Beispiel Requests

In diesem Artikel sind mehrere Beispiel-Requests beschrieben. Für die Beispiele wird die Typ-Definition Geschäft und Dokument verwendet. Die Beispiele können für alle anderen Typdefinitionen verwendet werden, es ändert sich jeweils nur der Name der Typdefinition im Request.

Geschäft erstellen

Request: POST /Geschaeft

Um ein Geschäft zu erstellen wird der Endpunkt POST /Geschaeft verwendet. Dieser erwartet ein Model mit allen obligatorischen Feldern und Assoziationen sowie optional die nicht obligatorischen. Als Antwort wird die GUID des neu erstellen Geschäfts zurückgegeben.

In diesem Beispiel wird ein Geschäft mit folgenden Daten erstellt: - Guid: 00000000-0000-0000-0000-000000000000 (Dieser Wert darf nicht verändert werden und bedeutet, dass das Objekt noch nicht existiert) - Version: -1 (Dieser Wert darf nicht verändert werden und bedeutet, dass das Objekt noch nicht existiert) - Titel: Beispiel Geschäft - Zugriffsteuerung: Offen - Beginn: 01.01.2001 - LifecycleStatus: InBearbeitung - Geschaeftsstatus: InBearbeitung - Geschaeftseigner: 293fbd30-7dd2-44e7-8a4c-6b6440402e3e

CURL Request

curl --location --request POST 'https://cmiapi.cloud.local:10000/dev/Geschaeft' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "guid": "00000000-0000-0000-0000-000000000000",
  "version": -1,
  "titel": "Beispiel Geschäft",
  "zugriffsteuerung": "Offen",
  "beginn": "01.01.2001",
  "lifecycleStatus": "InBearbeitung",
  "geschaeftsstatus": "InBearbeitung",
  "geschaeftseigner": {
    "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
  }
}'

Response

"29229898-6322-4936-8dcc-6feda9f7b44b"

Geschäft erstellen mit einer Vorlage

Request: POST /Geschaeft

Um ein Geschäft ab Vorlage zu erstellen wird der Endpunkt POST /Geschaeft?vorlage={PFAD} verwendet. Dieser erwartet ein Model mit allen obligatorischen Feldern und Assoziationen welche nicht von der Vorlage befüllt werden sowie optional die nicht obligatorischen. Als Antwort wird die GUID des neu erstellen Geschäfts zurückgegeben.

Felder die im Request-Model gesetzt werden überschreiben alles was von der Vorlage gesetzt wird.

In diesem Beispiel wird ein Geschäft mit folgenden Daten erstellt: Vorlage: - Vorlage: Global\CMI-Api-Geschaeft - Titel: Beispiel Geschäft - Beginn: 01.01.2001 - LifecycleStatus: InBearbeitung - Zugriffsteuerung: Offen - Geschaeftsstatus: InBearbeitung - Request-Model: - Guid: 00000000-0000-0000-0000-000000000000 (Dieser Wert darf nicht verändert werden und bedeutet, dass das Objekt noch nicht existiert) - Version: -1 (Dieser Wert darf nicht verändert werden und bedeutet, dass das Objekt noch nicht existiert) - Geschaeftseigner: 293fbd30-7dd2-44e7-8a4c-6b6440402e3e

CURL Request

curl --location --request POST 'https://cmiapi.cloud.local:10000/dev/Geschaeft?vorlage=Global\CMI-Api-Geschaeft' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "guid": "00000000-0000-0000-0000-000000000000",
  "version": -1,
  "geschaeftseigner": {
    "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
  }
}'

Response

"29229898-6322-4936-8dcc-6feda9f7b44b"

Geschäft bearbeiten

Request: PUT /Geschaeft/{GUID}

Um ein Geschäft zu bearbeiten wird der Endpunkt PUT /Geschaeft/{GUID} verwendet. Dieser erwartet ein Model mit allen Feldern (es müssen auch nicht geänderte Felder mitgegeben werden).

In diesem Beispiel wird der Titel des Geschäfts von Beispiel Geschäft zu CMI API Dossier geändert. Alle anderen Felder sind gleich geblieben: - Guid: 29229898-6322-4936-8dcc-6feda9f7b44b (GUID des betroffenen Geschäfts) - Version: 0 (Aktuelle Version welche mit GET /Geschaeft/{GUID} abgefragt werden kann) - (Geändert) Titel: CMI API Dossier - Zugriffsteuerung: Offen - Beginn: 01.01.2001 - LifecycleStatus: InBearbeitung - Geschaeftsstatus: InBearbeitung - Geschaeftseigner: 293fbd30-7dd2-44e7-8a4c-6b6440402e3e

CURL Request

curl --location --request PUT 'https://cmiapi.cloud.local:10000/dev/Geschaeft/29229898-6322-4936-8dcc-6feda9f7b44b' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "guid": "29229898-6322-4936-8dcc-6feda9f7b44b",
  "version": 0,
  "titel": "CMI API Dossier",
  "zugriffsteuerung": "Offen",
  "beginn": "01.01.2001",
  "lifecycleStatus": "InBearbeitung",
  "geschaeftsstatus": "InBearbeitung",
  "geschaeftseigner": {
    "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
  }
}'

Response Empty response


Geschäft per GUID laden

Request: GET /Geschaeft/{GUID}

Um ein Geschäft per GUID zu laden wird der Endpunkt GET /Geschaeft/{GUID} verwendet. Als Antwort wird das Geschäft mit allen Feldern zurückgegeben. In diesem Beispiel wird das Geschäft mit der GUID 29229898-6322-4936-8dcc-6feda9f7b44b geladen.

CURL Request

curl --location --request GET 'https://cmiapi.cloud.local:10000/dev/Geschaeft/29229898-6322-4936-8dcc-6feda9f7b44b' \
--header 'Authorization: Bearer TOKEN'

Response

{
    "guid": "29229898-6322-4936-8dcc-6feda9f7b44b",
    "version": 2,
    "titel": "CMI API Dossier",
    "zugriffsteuerung": "Offen",
    "beginn": "01.01.2001",
    "laufnummer": "2022/SW/17",
    "lifecycleStatus": "InBearbeitung",
    "geschaeftsstatus": "InBearbeitung",
    "geschaeftseigner": {
        "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e",
        "displayName": "Eicher Adrian; gever",
        "url": "/Benutzer/293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
    }
}

Geschaefte suchen

Request: POST /Geschaeft/Search

Um Geschäfte zu suchen wird der Endpunkt POST /Geschaeft/Search/{QUERY} verwendet. Als Antwort werden alle gefundenen Geschäfte mit jeweils allen Feldern zurückgegeben. In diesem Beispiel werden Geschäfte mit der Query Titel[CMI Api*] gesucht. Als Suchsyntax wird TentaQL verwendet, die Dokumentation ist hier zu finden.

CURL Request

curl --location -g --request POST 'https://cmiapi.cloud.local:10000/dev/Geschaeft/Search' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw 'Titel[CMI Api*]'

Response

[
    {
        "guid": "6d621f9a-8fd7-4554-9de3-0c16c71d1806",
        "version": 0,
        "titel": "CMI API Geschäft 3",
        "zugriffsteuerung": "Offen",
        "beginn": "01.01.2001",
        "laufnummer": "2022/SW/20",
        "lifecycleStatus": "InBearbeitung",
        "geschaeftsstatus": "InBearbeitung",
        "geschaeftseigner": {
            "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e",
            "displayName": "Eicher Adrian; gever",
            "url": "/Benutzer/293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
        }
    },
    {
        "guid": "b37b6b0c-0cb1-4d08-a1c2-6c0539dd7f64",
        "version": 0,
        "titel": "CMI API Geschäft 2",
        "zugriffsteuerung": "Offen",
        "beginn": "01.01.2001",
        "laufnummer": "2022/SW/19",
        "lifecycleStatus": "InBearbeitung",
        "geschaeftsstatus": "InBearbeitung",
        "geschaeftseigner": {
            "guid": "293fbd30-7dd2-44e7-8a4c-6b6440402e3e",
            "displayName": "Eicher Adrian; gever",
            "url": "/Benutzer/293fbd30-7dd2-44e7-8a4c-6b6440402e3e"
        }
    }
]

Geschäft löschen

Request: DELETE /Geschaeft/{GUID}

Um Geschäfte zu löschen wird der Endpunkt DELETE /Geschaeft/{DELETE} verwendet. In diesem Beispiel wird das Geschäft mit der GUID 6d621f9a-8fd7-4554-9de3-0c16c71d1806 gelöscht.

CURL Request

curl --location --request DELETE 'https://cmiapi.cloud.local:10000/dev/Geschaeft/6d621f9a-8fd7-4554-9de3-0c16c71d1806' \
--header 'Authorization: Bearer TOKEN'

Response Empty response


Request: GET /Geschaeft/Menu/{GUID}

Um verfügbare Menüs abzufragen wird der Endpunkt GET /Geschaeft/Menu/{GUID} verwendet. In diesem Beispiel werden Menüs für das Geschäft mit der GUID 7b7b62f6-a920-4e12-aae5-28c588fd6fdd abgefragt.

CURL Request

curl --location --request GET 'https://cmiapi.cloud.local:10000/dev/Geschaeft/Menu/7b7b62f6-a920-4e12-aae5-28c588fd6fdd' \
--header 'Authorization: Bearer TOKEN'

Response

[
    {
        "key": "cmiaxioma.abstraktesgeschaeft.contextmenucommands.stornierencommand",
        "text": "Stornieren"
    },
    {
        "key": "cmiaxioma.abstraktesgeschaeft.contextmenucommands.abschliessencommand",
        "text": "Abschliessen"
    }
]

Request: POST /Geschaeft/Menu/{GUID}/{MENU}

Um ein Menüs auszuführen wird der Endpunkt POST /Geschaeft/Menu/{GUID}/{MENU} verwendet. In diesem Beispiel wird das Menü cmiaxioma.abstraktesgeschaeft.contextmenucommands.stornierencommand für das Geschäft mit der GUID 7b7b62f6-a920-4e12-aae5-28c588fd6fdd ausgeführt.

CURL Request

curl --location --request POST 'https://cmiapi.cloud.local:10000/dev/Geschaeft/Menu/7b7b62f6-a920-4e12-aae5-28c588fd6fdd/cmiaxioma.abstraktesgeschaeft.contextmenucommands.stornierencommand' \
--header 'Authorization: Bearer TOKEN'

Response Empty response


Dokument auschecken

Request: POST /Dokument/CheckOut/{GUID}

Um ein Dokument auszuchecken wird der Endpunkt POST /Dokument/CheckOut/{GUID} verwendet. In diesem Beispiel wird das Dokument mit der GUID 6d621f9a-8fd7-4554-9de3-0c16c71d1806 ausgecheckt.

CURL Request

curl --location --request POST 'https://cmiapi.cloud.local:10000/dev/Dokument/CheckOut/f1a7d3e997a64ae4834781bab4bc8828' \
--header 'Authorization: Bearer TOKEN'

Response Empty response


Dokument einchecken

Request: POST /Dokument/CheckOut/{GUID}

Um ein Dokument einzuchecken wird der Endpunkt POST /Dokument/CheckOut/{GUID} verwendet. In diesem Beispiel wird das Dokument mit der GUID 6d621f9a-8fd7-4554-9de3-0c16c71d1806 eingecheckt.

Folgende form-data Parameter werden mitgeschickt: - file: test.txt (Inhtlat ist "Test") - checkInComment: Das ist ein Kommentar - dokumentStatus: Zwischenversion

CURL Request

curl --location --request POST 'https://cmiapi.cloud.local:10000/dev/Dokument/CheckIn/f1a7d3e997a64ae4834781bab4bc8828' \
--header 'Authorization: Bearer TOKEN' \
--form 'file=@"test.txt"' \
--form 'checkInComment="Das ist ein Kommentar"' \
--form 'dokumentStatus="Zwischenversion"'

Response Empty response


Dokument Dateiinhalt abfragen

Request: GET /Dokument/FileContent/{GUID}

Um den Inhalt eines Dokuments abzufragen wird der Endpunkt GET /Dokument/FileContent/{GUID} verwendet. In diesem Beispiel wird der Inhalt des Dokuments mit der GUID 6d621f9a-8fd7-4554-9de3-0c16c71d1806 abgefragt.

CURL Request

curl --location --request GET 'https://cmiapi.cloud.local:10000/dev/Dokument/FileContent/f1a7d3e997a64ae4834781bab4bc8828' \
--header 'Authorization: Bearer TOKEN'

Response

Test