REST-API

Die Basis-URI für jede Anfrage hat die Form http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api, wenn der Name des ausgelieferten WAR-Archivs genutzt wird. Die enthaltene OpenAPI Spezifikation kann über Erweiterung der Basis-URL mit /swagger-ui.html aufgerufen werden. Hier werden alle Endpunkte inklusive Parametrisierung und Rückgabewerte beschrieben.

Beim Start der b4A RESTful API muss eine gültige Lizenz für b4A im Konfigurationsverzeichnis liegen.

Die b4A RESTful API arbeitet bei allen Eingabe- und Ausgabedateien mit UTF-8.

Authentifizierung

Je nach Konfiguration, siehe Rest Edition, wird die Authentisierung mit Benutzernamen und Passwort (Basic-Authentifizierung) oder mit einem JWT-Token durchgeführt.

Basic-Authentifizierung

Ist die Basic-Authentifizierung aktiviert, muss bei jeder Anfrage gegen die b4A RESTful API der Benutzername und das Passwort im Authorization-Header mitgegeben werden. Der Benutzername ist dabei mit USERNAME/DEPARTMENT anzugeben. Der gesamte Service-Bereich der b4A RESTful API steht hierbei, unabhängig von den Rollen des Benutzers, nicht zur Verfügung. Der Authorization-Header ist wie bei Basic-Authentifizierung üblich mit <BENUTZERNAME>:<PASSWORT> in Base64-Codierung. Beispiel

Authorization: Basic REVNTy9CNEE6RHVEZWNvZGVzdEFsc29VbnNlclBhc3N3b3J0LlNvU28h

Tokenbasierte Authentifizierung

Bei dieser Authentifizierungsmethode steht grundsätzlich das volle Funktionsspektrum der b4A RESTful API zur Verfügung. Für welche Anfragen ein Benutzer berechtigt ist, hängt von seinen Rollen ab. Bei jeder Anfrage muss ein JWT-Token im Authorization-Header mitgegeben werden. Zur Erzeugung eines solchen Tokens muss zuerst der Anmelde-Endpunkt (POST-Anfrage) aufgerufen werden.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/login

Die Anmeldedaten müssen im Rumpf der Anfrage mitgegeben werden.

{
  "username": "DEMO/B4A",
  "password": "<Passwort>",
  "language": "de"
}

Die Antwort sieht beispielsweise wie folgt aus.

  {
  "user": {
      "username": "DEMO/B4A",
      "firstName": "Demo",
      "lastName": "b4A"
  },
  "emailAddress": "demo@b4A.de",
  "expires": "2022-08-05T12:00:00.000Z",
  "admin": false,
  "roles": [
      {
          "name": "B4A.ROLE.1",
          "title": "Erste Rolle"
      },
      {
          "name": "B4A.ROLE.2",
          "title": "Zweite Rolle"
      }
  ]
}

Der JWT-Token wird nicht im Rumpf mitgeschickt, sondern befindet sich im Header der Antwort unter dem Key Authorization. Dem Rumpf kann die Information entnommen werden, dass das Token zu einer bestimmten Zeit abläuft. Wie lange das erzeugte Token gültig ist kann konfiguriert werden. Zusätzlich lässt sich das sogenannte Secret (ein geheimer Schlüssel) und der Issuer (Herausgeber des Tokens) konfigurieren, auf dessen Grundlage das Token erzeugt wird. Siehe dazu Rest Edition. Nach einem Neustart der b4A RESTful API sind alle zuvor erstellten Token ungültig.

Alle weiteren Anfragen müssen nun dieses erzeugte Token im Header mitschicken. Der Authorization-Header sieht beispielsweise so aus.

Authorization: Bearer eyJhbGciOiJIUzUxGjkiJ9.nOIHfIjoiZGUuYmVzdGJsdS5yZXN0YXBpIiwiaWF0IjoxNjQzMDA4Njc1LCJleHAiOjE2NDMwMzc0NzV9.xYGmrfMidALVySU6yfoO4sNWbdl4LSIpcbDJTdgiIc0O4cAHxp6UP9KXlF_wh1fmEGcK3WY_b5

Da bei jedem Login eine Verbindung zur Automation Engine aufgebaut wird, sollte jede Sitzung auch sauber wieder mit dem Abmelde-Endpunkt (POST-Anfrage) geschlossen werden, falls sie nicht mehr benötigt wird. Ein Rump ist nicht mitzusenden.

http[s]://{host}:{port}/best4automic-rest-v2/api/logout

Rollen

Die Authorisierung wird in der b4A RESTful API über vier Rollen verwaltet. Die Rollen werden über Benutzergruppen in der Automation Engine abgebildet. Wie die Benutzergruppen in der Automation Engine heißen kann konfiguriert werden. Siehe dazu im Kapitel Rest Edition nach den in der Spalte „Konfiguration“ beschriebenen Schlüsseln.

Rolle

Konfiguration

Beschreibung

Info

rest.auth.groups.info

Ein Benutzer mit dieser Rolle hat ausschließlich „lesenden“ Zugriff auf die b4A RESTful API. Es sind ausschließlich die Lizenz-, Connection-und Version-Endpunkte sowie GET-Anfragen an den Module-Endpunkt erlaubt.

Module

rest.auth.groups.module

Benutzer dieser Gruppe haben zusätzlich zu den Info-Berechtigungen zusätzlich die Berechtigung Module auszuführen.

Service

rest.auth.groups.service

Diese Berechtigung wird benötigt, wenn zusätzlich zu den Module-Berechtigungen auch der Service-Bereich der b4A RESTful API verwendet werden soll. Ausgeschlossen sind administrative Endpunkte und der Endpunkt für Meldungen aus der Automation Engine.

Admin

rest.auth.groups.admin

Die Gruppe der Admins darf zusätzlich zu den Berechtigungen der Service-Rolle noch die administrativen Endpunkte bedienen sowie Aufräumarbeiten mithilfe der DELETE-Anfragen des Modul-Endpunkts durchführen. Der einzige Endpunkt, der sogar dem Admin-User verwehrt wird ist der bereits angesprochene Endpunkt für Meldungen aus der Automation Engine.

Meldungen aus der Automation Engine

Die Post-Anfrage zum Senden von Meldungen aus der Automation Engine nimmt eine Sonderrolle in der b4A RESTful API ein. Sie ist ausschließlich dafür gedacht Meldungen aus der Automation Engine an das b4A Service Portal zu senden. Es bedarf eines installationsspezifischen Tokens, um diesen Endpunkt nutzen zu können. Dieser kann konfiguriert werden. Siehe dazu im Kapitel Rest Edition den Schlüssel rest.auth.status.token. Mit dem b4A Package B4A.WEB wird eine Action bereitgestellt, mit der Meldungen an das b4A Service Portal gesendet werden können. Mehr Informationen zu diesem b4A Package gibt es unter https://docs.best4automic.de/packages. Für weitere Informationen zum b4A Service Portal sei hier auf die Dokumentation dieser verwiesen. Meldungen, die über diese Action an die b4A RESTful API gesendet werden, werden über Websockets an alle an dem b4A Service Portal angemeldeten Benutzer verteilt.

Websockets

Die b4A RESTful API erzeugt an einigen Stellen Nachrichten, die über Websockets verteilt werden. Ein Websocket zur b4A RESTful API wird gegen folgende URL geöffnet.

http[s]://{host}:{port}/best4automic-rest-v2/api/service/event

Allerdings gibt es die Besonderheit, dass ein Authorization-Header, analog zu einer Anfrage an die b4A RESTful API mit JWT-Token, mitgegeben werden muss.

Die Kommunikation über die Websocket basiert auf dem Protokoll STOMP. Dabei registriert sich das b4A Service Portal für Topics zu denen es Nachrichten bekommen möchte. Im Folgenden werden alle abonnierbaren Topics aufgelistet und beschrieben.

Topic

Beschreibung

/user/queue/service/status/changed

Wenn sich der Status eines Services geändert hat wird eine Nachricht an alle Benutzer mit offener Websocket gesendet, die für den spezifischen Service berechtigt sind.

/user/queue/service/notifications/changed

Wenn ein Benachrichtigungsobjekt ausgeführt wird, für das der Benutzer als Empfänger eingetragen ist, wird eine entsprechende Nachricht über die Websocket geschickt. Für den Empfang muss der Benutzer mindestens ein Mal vorher die GET-Anfrage /service/notifications an die b4A RESTful API geschickt haben. Ansonsten bekommt der Benutzer nichts von diesen Änderungen mit.

/user/queue/service/notification/approved

Wurde ein Benachrichtigungsobjekt, für das der Benutzer als Empfänger eingetragen ist, über die POST-Anfrage /service/notification/{runId} von jemand anderem als ihm selbst beantwortet, erhält der Benutzer hierüber eine entsprechende Nachricht.

/user/queue/service/message/added

Hierüber werden die Meldungen aus der Automation Engine weitergeleitet.

/user/queue/service/start/initiated

Wurde ein Service erfolgreich über die POST-Anfrage /service gestartet, wird über dieses Topic eine Nachricht an alle Benutzer gesendet, die für den spezifischen Service berechtigt sind.

/user/queue/service/start/failed

War der Start eines Services über die POST-Anfrage /service nicht erfolgreich, wird über dieses Topic eine Nachricht an den Benutzer gesendet, der versucht hat den Service zu starten.

/user/queue/service/start/external/detected

Wurde ein Service, der als TaskFilter none hinterlegt hat, außerhalb des b4A Service Portal gestartet (beispielsweise direkt im AWI, per Scheduler, Automic REST-API, Call-API…), wird über dieses Topic eine Nachricht an alle Benutzer gesendet, die für den spezifischen Service berechtigt sind.

/user/queue/service/config/changed

Wurde die Konfiguration über die PUT-Anfrage /service/admin/config/reload neu geladen, werden alle Benutzer darüber informiert.

Beispielanfragen

Eine Beschreibung aller Endpunkte mit Schema und Beispielen befinden sich in der OpenAPI-Spezifikation, auf die eingangs verwiesen wurde. Dennoch sollen hier einige Beispiele dokumentiert 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-{b4A Core Version}-v2/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": ""
}

Module

Modul ausführen

Zur Ausführung eines Moduls muss eine POST-Anfrage an folgenden Endpunkt geschickt werden.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/module

Bei dieser Anfrage muss ein Rumpf mitgeschickt werden. Dieser muss folgendes Format haben.

{
  "name": "info.Search",
  "options": {
    "connection": "AE21PROD-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": "AE21PROD-1000",
      "end": "2021-06-28 15:39:06",
      "test-mode": false,
      "exclude-list": "/var/lib/tomcat9/webapps/best4automic-rest-v2#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-v2#api/data/3/suchergebnisse.txt",
      "traverse-flows": false,
      "name": "*BEST*",
      "begin": "2021-05-28 15:39:06"
  },
  "_links": {
      "get_module": {
          "href": "http[s]://{host}:{port}/best4automic-rest-v2/api/module/1"
      },
      "get_report": {
          "href": "http[s]://{host}:{port}/best4automic-rest-v2/api/module/1/report"
      },
      "get_output": {
          "href": "http[s]://{host}:{port}/best4automic-rest-v2/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.

Erfordert eine Option eine Eingabedatei, kann die Datei auf drei unterschiedliche Arten übergeben werden.

Die erste Möglichkeit ist die Übergabe des Dateiinhalts als Base64-codierte Zeichenkette.

{
  "name": "Search",
  "options": {
      "connection": "AE21PROD-1000",
      "input-mode":"file",
      "input": "Sk9CUzpCNEEuQkFTRS4qCkZPTERFUjpQQUNLQUdFUy9CRVNULUJMVS9CQkMuU0hBUkVE"
  }
}

Alternativ kann eine Datei im File URI Schema übergeben werden. Beispielsweise kann hier eine Datei übergeben werden, die zuvor mithilfe des Endpunkts „/file/upload“ hochgeladen wurde.

{
  "name": "Search",
  "options": {
      "connection": "AE21PROD-1000",
      "input-mode":"file",
      "input": "file:///var/lib/tomcat9/webapps/best4automic-rest-v2#api/data/uploadDir/b4A.9452653586426052242.input.txt"
  }
}

Die letzte Möglichkeit gilt explizit für CSV-Input Dateien. Diese können auch als Liste von Listen von Zeichenketten übergeben werden.

{
  "name": "Search",
  "options": {
      "connection": "AE21PROD-1000",
      "input-mode":"file",
      "input": [
        ["JOBS:B4A.JOBS.NEW.1", "B4A.TESTS/SAMPLES"],
        ["JOBS:B4A.JOBS.NEW.2", "B4A.TESTS/SAMPLES2"]
      ]
  }
}

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[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/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-{b4A Core Version}-v2/api/module/1/report"
    },
    "delete_module": {
        "href": "http://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/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-{b4A Core Version}-v2/api/module/1/report

Die Ausgabedatei der Option save-objects wird ähnlich abgefragt.

http://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/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.

Service

Kategorien

Diese GET-Anfrage gibt die Kategorien zurück, für die der Benutzer berechtigt ist.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service/categories
{
  "categories": [
    {
      "key": "EXAMPLES",
      "label": "Examples"
    },
    {
      "key": "TESTING",
      "label": "Test Automation"
    },
    {
      "key": "DEPLOYMENT",
      "label": "Deployment"
    },
    {
      "key": "PROJECT",
      "label": "Project Management"
    }
  ]
}

Liste der Services

Mit dieser GET-Anfrage wird für eine bestimmte Kategorie die Liste der Services zurückgegeben. Beispiel:

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service/list/EXAMPLES
{
  "category": "EXAMPLES",
  "services": [
    {
      "name": "B4AE.WEB.JOBP.SMOKE-TEST",
      "title": "Smoke Test",
      "description": "Check if the configuration is correct and ensure that the communication between Automation Engine, b4A RESTful API and the b4A WebUI works",
      "promptSets": [
        {
          "name": "B4AE.WEB.PRPT.SMOKE-TEST",
          "title": "Smoke Test",
          "parameters": [
            {
              "variable": "B4AW_TEST_I#",
              "label": "Test Parameter",
              "defaultValue": "",
              "dynamicDefaultValue": false,
              "tooltip": "",
              "type": "TextView",
              "dataReference": "UC_DATATYPE_STRING",
              "readOnly": false,
              "regex": "",
              "upperCase": false,
              "multiline": false,
              "required": false,
              "showAsPassword": false,
              "resets": []
            }
          ]
        }
      ]
    },
  ...
  ]
}

Liste der aktiven Instanzen von Services

Um nun die aktiven Instanzen aller Services der Kategorie zu bekommen muss folgende GET-Anfrage geschickt werden. Standardmäßig werden hier nur diejenigen Instanzen zurückgegeben, die keinen Parent haben, also direkt von einem Benutzer gestartet wurden. Sollen auch Instanzen zurückgegeben werden, die beispielsweise von einem Scheduler gestartet wurden, muss dies pro Service konfiguriert werden. Dazu stehen weitere Informationen in der Dokumentation des b4A Service Portal

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service/tasks/EXAMPLES
{
  "category": "EXAMPLES",
  "services": [
    {
      "name": "B4AE.WEB.JOBP.SMOKE-TEST",
      "title": "Smoke Test",
      "instances": [
        {
          "user": {
            "username": "DEMO/B4A",
            "firstName": "Demo",
            "lastName": "best4Automic"
          },
          "runId": 1928407,
          "completedTasks": 2,
          "numberOfTasks": 3,
          "status": null,
          "statusCode": 1550,
          "statusText": "Aktiv",
          "messages": [
            {
              "message": " Thanks for using b4A Web UI :-)\r\n",
              "type": "INFO"
            },
            {
              "message": " This is quite a long message which is used to show you what happens with such log text segments in the b4A Service Portal. Beautiful, right?\r\n",
              "type": "INFO"
            },
            {
              "message": " This is quite a long message which is used to show you what happens with such long text fragment in the b4A Service Portal. Beautiful, right?\r\n",
              "type": "INFO"
            },
            {
              "message": " First task of service has been finished\r\n",
              "type": "INFO"
            },
            {
              "message": " Second task of service is going to start\r\n",
              "type": "INFO"
            },
            {
              "message": " Second task of service has been finished\r\n",
              "type": "INFO"
            }
          ],
          "parameters": [
            {
              "variable": "B4AW_TEST_I#",
              "label": "Test Parameter",
              "value": "Demo"
            }
          ],
          "startTime": "2022-08-05 23:06:00"
        },
        ...
      ]
    },
    ...
  ]
}

Starten eines Services

Zum Starten eines Services bedarf es einer POST-Anfrage.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service

Der Body der Anfrage sieht beispielsweise folgendermaßen aus.

{
  "name": "B4AE.WEB.JOBP.SMOKE-TEST",
  "category": "EXAMPLES",
  "parameters": {
    "B4AW_TEST_I#":"Demo"
  }
}

Als Antwort wird die RunId des gestarteten Services geliefert.

{
  "runId": 1919242
}

Bei der Mitgabe der Parameter kann mit der aus der Automation Engine gewohnten Syntax gearbeitet werden, um auf Inhalte von VARA-Objekten zuzugreifen (geschweifte Klammern). Außerdem stehen auch einige Systemvariablen zur Verfügung. Diese werden im folgenden aufgelistet:

  • &$SYSTEM#

  • &$CLIENT#

  • &$CLIENT_DESC#

  • &$DEPARTMENT#

  • &$USER#

  • &$ACTIVATOR#

  • &$USER_FL#

  • Datumsangaben mit &$DATE_format#, &$LDATE_format# und &$PHYS_DATE_format#. Dabei werden in der b4A RESTful API alle wie &$PHYS_DATE_format# behandelt. Es wird dabei mit der Zeitzone gearbeitet, mit der die JVM läuft.

  • Zeitangaben mit &$PHYS_TIME_format# , &$TIME_format#

  • &$B4A_USER_EMAIL#: Email-Adresse des Benutzers.

  • &$B4A_REST_CONNECTION#: B4A-Verbindung, gegen die die b4A RESTful API konfiguriert ist

Die letzten beiden Variablen werden nur aufgelöst, wenn der Service über die b4A RESTful API gestartet wird. In der Automation Engine werden sich nicht aufgelöst.

Wartung und Administration

Bei der b4A RESTful API fallen gewisse administrative Aufgaben an. Die Modulausführung erzeugt Ausgabedateien und Einträge in der Datenbank. Diese sollten regelmäßig bereinigt werden. Dafür bietet die b4A RESTful API zwei DELETE-Endpunkte an. Mit der ersten Möglichkeit können anhand der Id alle Daten zu einem spezifischen Lauf gelöscht werden.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/module/{id}

Der zweite DELETE-Endpunkt löscht alle Daten, die älter sind als eine ausgewählte Anzahl an Tagen.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/module/cleanup

Bei dieser Anfrage muss ein Rumpf mit geschickt werden, der definiert wie viele Tage an Ausführungsinformationen behalten werden sollen.

{
  "numberOfDaysToKeep": 7
}

Für den Service-Bereich gibt es zwei Endpunkte, die bei der Administration unterstützen. Für diese werden in dem Package B4A.WEB bereits Services mit ausgeliefert. Sie können damit direkt aus dem b4A Service Portal aufgerufen werden. Um die Automation Engine nicht mit zu vielen Anfragen zu konfrontieren besitzt die b4A RESTful API mehrere Caches. Zum Einen wird die XML-Konfiguration der Services und Rollen zwischengespeichert. Gibt es Änderungen an dieser, muss folgende PUT-Anfrage aufgerufen werden.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service/admin/config/reload

Zusätzlich werden Objekte zwischengespeichert, um diese nicht ständig aus der Automation Engine abzufragen. Dies erfordert in einigen Fällen das Zurücksetzen dieser Caches:

  • Änderungen an den PromptSets eines bestehenden Services

  • Änderung des Titels eines bestehenden Services

  • Änderungen der Berechtigungen eines Benutzers, der schon einmal probiert hat sich gegen die b4A RESTful API zu authentisieren

Dies geschieht mit folgender PUT-Anfrage.

http[s]://{host}:{port}/best4automic-rest-{b4A Core Version}-v2/api/service/admin/cache/reset