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
Menüs abfragen
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"
}
]
Menüs ausführen
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