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 einem durch zusammenklicken von Typdefinitionen und den dazugehörigen Assoziationen und Felder die API zu konfigurieren. CMI API enthält keine initiale Konfiguration, die Konfiguration muss entlang den Bedürfnissen angepasst werden. Konfiguration kann mit dem mit ausgelieferten GUI vorgenommen werden (siehe Verwendung-ConfigUi.pdf). Dabei können die benötigten Typ-Definitionen und Felder ausgewählt und gespeichert werden. Wichtig ist, nachdem die Konfiguration gespeichert und abgeschlossen ist MUSS ein Neustart des Service (CMI-API) oder ein recycle des APP-Pool erfolgen, dass diese aktiv ist.
- Beispiel Requests
- Geschaeft erstellen (POST /Geschaeft)
- Geschaeft erstellen mit einer Vorlage (POST /Geschaeft)
- Geschaeft bearbeiten (PUT /Geschaeft/{GUID})
- Geschaeft per GUID laden (GET /Geschaeft/{GUID})
- Geschaefte suchen (GET /Geschaeft/Search/{QUERY})
- Geschaeft löschen (DELETE /Geschaeft/{GUID})
- Menüs abfragen (GET /Geschaeft/Menu/{GUID})
- Menüs ausführen (POST /Geschaeft/Menu/{GUID}/{MENU})
- Dokument auschecken (POST /Dokument/CheckOut/{GUID})
- Dokument einchecken (POST /Dokument/CheckOut/{GUID})
- Dokument Dateiinhalt abfragen (GET /Dokument/FileContent/{GUID})
Beispiel Requests
In diesem Dokument 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.
Geschaeft erstellen (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"
Geschaeft erstellen mit einer Vorlage (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"
Geschaeft bearbeiten (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
Geschaeft per GUID laden (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 (GET /Geschaeft/Search/{QUERY})
Um Geschäfte zu suchen wird der Endpunkt GET /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.
CURL Request
curl --location -g --request GET 'https://cmiapi.cloud.local:10000/dev/Geschaeft/Search/Titel[CMI Api*]' \
--header 'Authorization: Bearer TOKEN'
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"
}
}
]
Geschaeft löschen (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 (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 (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 (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 (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 (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