REST-API¶
Die Basis-URI für jede Anfrage hat die Form http[s]://{host}:{port}/best4automic-rest-v1/api. Die OpenAPI Spezifikation kann über /swagger-ui.html aufgerufen werden.
Ist die Basic-Authentisierung aktiviert, muss der Benutzername mit USERNAME/DEPARTMENT angegeben werden.
Lizenz¶
Zur Überprüfung, ob die RESTful-API korrekt installiert und konfiguriert wurde, kann der Lizenz-Endpunkt aufgerufen werden (GET-Anfrage).
http[s]://{host}:{port}/best4automic-rest-v1/api/license
War der Request erfolgreich, sollte die erworbene Lizenz zurückgegeben werden. Die Antwort sollte beispielsweise so aussehen.
{
"license": {
"company": "best-blu consulting with energy GmbH",
"type": "Production",
"bundle": "All-in-One",
"categories": [
"te",
"ana",
"mc",
"info",
"util",
"tp",
"pm",
"ta",
"vcs"
]
},
"valid": true,
"message": ""
}
Modul ausführen¶
Zur Auführung eines Moduls muss eine POST-Anfrage an folgenden Endpunkt geschickt werden.
http[s]://{host}:{port}/best4automic-rest-v1/api/module
Bei dieser Anfrage muss ein Body mitgeschickt werden. Dieser muss folgendes Format haben.
{
"name": "info.Search",
"options": {
"connection": "AE12PROD-1000",
"save-objects": "suchergebnisse.txt",
"name": "*BEST*"
}
}
Bei Erfolg gibt es als Antwort den HTTP-Status 202 Accepted zurück. Wie für REST-APIs üblich wird hier also nicht auf das Ende der Ausführung gewartet. Der Status der Ausführung kann mit einer weiteren Anfrage abgefragt werden. Vorweg die Beispielantwort für eine POST-Anfrage.
{
"id": 1,
"updated": "2021-06-28T13:39:06.705+00:00",
"name": "info.Search",
"status": "INITIATED",
"returnCode": 0,
"errorMessage": "",
"options": {
"log-flags": [
"MONOCHROME",
"TIMESTAMP"
],
"log-variants": [
"REPORT"
],
"log-datastream-separator": "§§",
"log-datastream-prefix": "@B4A_STREAM@",
"recursive": true,
"folder-ignore-missing": false,
"log-levels": [
"ERROR",
"WARNING",
"INFO"
],
"parse-processes": false,
"encryption-key": "server",
"save-success-only": true,
"connection": "AE12PROD-1000",
"end": "2021-06-28 15:39:06",
"test-mode": false,
"exclude-list": "/var/lib/tomcat9/webapps/best4automic-rest-v1#api/data/3/exclude-list",
"search-date": "none",
"log-error-mode": "never",
"search-in-vara-type": "text",
"types": [
"CALE",
"CALL",
"CITC",
"CLNT",
"CODE",
"CONN",
"CPIT",
"DASH",
"DOCU",
"EVNT",
"FILTER",
"FOLD",
"HOST",
"HOSTG",
"HSTA",
"JOBF",
"JOBG",
"JOBI",
"JOBS",
"JOBP",
"JOBQ",
"LINK",
"LOGIN",
"JSCH",
"SCRI",
"SYNC",
"TZ",
"USER",
"USRG",
"VARA",
"XSL",
"PRPT",
"QUEUE",
"STORE",
"SLO",
"PERIOD"
],
"exclude-ignore": false,
"save-append": false,
"input-mode": "search",
"include-links": false,
"datastream-object-type": false,
"save-objects": "/var/lib/tomcat9/webapps/best4automic-rest-v1#api/data/3/suchergebnisse.txt",
"traverse-flows": false,
"name": "*BEST*",
"begin": "2021-05-28 15:39:06"
},
"_links": {
"get_module": {
"href": "http://<host>:<port>/best4automic-rest-v1/api/module/1"
},
"get_report": {
"href": "http://<host>:<port>/best4automic-rest-v1/api/module/1/report"
},
"get_output": {
"href": "http://<host>:<port>/best4automic-rest-v1/api/module/1/output/save-objects"
}
}
}
Im unteren Abschnitt der Antwort werden sinnvolle Folgeanfragen aufgelistet. In diesem Fall kann mit der ersten Anfrage der Status und weitere Informationen über den Lauf des Moduls abgefragt werden. Mit der zweiten kann der Report und mit der dritten die Ausgabedatei der Option save-objects geholt werden.
Weitere Anfragen zu diesem Lauf¶
Die GET-Requests sind so abzuschicken, wie sie in der Antwort oben geschickt wurden.
Für die Informationen über die Optionen, den Status oder eventuelle Fehlermeldungen wird diese Anfrage verschickt.
http://<host>:<port>/best4automic-rest-v1/api/module/1
Die Antwort ähnelt stark der POST-Anfrage. In diesem Fall ist das Modul aber bereits erfolgreich durchgelaufen.
{
"id": 1,
"updated": "2021-06-28T12:17:40.999+00:00",
"name": "info.Search",
"status": "COMPLETED",
"returnCode": 0,
"errorMessage": "",
"options": {
"all": "options",
"for": "this",
"run": "!"
},
"_links": {
"get_report": {
"href": "http://<host>:<port>/best4automic-rest-v1/api/module/1/report"
},
"delete_module": {
"href": "http://<host>:<port>/best4automic-rest-v1/api/module/cleanup/1"
}
}
}
Die Status können sein:
INITIATED: Lauf wurde initialisiert
IN_PROGRESS: Das Modul wurde gestartet, aber noch nicht beendet
COMPLETED: Das Modul wurde erfolgreich beendet
FAILED: Das Modul wurde mit Fehlern beendet. In diesem Fall sind dem returnCode und der errorMessage weitere Informationen zu entnehmen.
Für den Report des Laufs ist folgende Anfrage abzuschicken.
http://<host>:<port>/best4automic-rest-v1/api/module/1/report
Die Ausgabedatei der Option save-objects wird ähnlich abgefragt.
http://<host>:<port>/best4automic-rest-v1/api/module/1/output/save-objects
Abhängig von der Dateiendung, die bei der Post-Anfrage angegeben wurde, wird der Medientyp der Datei geraten und in dem Header der Antwort gesetzt.