Skip to content

Interaktion mit service

Interaktion mit anderen Services

Synchron

Der Request eines als synchron parametrierten APIs wird nach der Validierung der übergebenen Daten und der Prüfung der Berechtigung sofort gemäss der hinterlegten Parametrierung verarbeitet. Das Ergebnis wird dem Aufrufer erst nach erfolgreicher Verarbeitung zurückgegeben.

Das folgende Sequenzdiagramm zeigt, wie der Request eines synchron parametrierten APIs verarbeitet wird:

sequenceDiagram
   title Synchroner Request
   actor a as Service
   participant b as Backend
   participant p as ProcessEngine
   participant d as Data

   Note over b,d: Der Service muss autorisiert sein. Siehe  Authorization Code Flow.

   a ->> b: POST /DynamicApi/ProcessRequest
   activate b
   b ->> b: checkPermission
   b ->> p: executeProcess
   activate p
   loop Request-Verarbeitung
   p ->> d: select data
   activate d
   d ->> p: resultset
   deactivate d
   p ->> p: processData
   Note right of p: Verarbeitung gemäss Parametrierung!
   end
   p ->> d: write data
   activate d
   d -->> p: success
   deactivate d
   p ->> b: result
   b ->> a: result
   deactivate p
   deactivate b
Hold "Alt" / "Option" to enable pan & zoom

Asynchron

Der Request eines als asynchron parametrierten APIs wird nach der Validierung der übergebenen Daten und der Prüfung der Berechtigung von der Task-Engine gespeichert. Erhält der Aufrufer einen Statuscode 200 zurück, kann er sich sicher sein, dass der Request angenommen wurde. Die Taskengine verarbeitet je nach Auslastung und Parametrierung den Request sofort oder zu einem spätern Zeitpunkt.

Das folgende Sequenzdiagramm zeigt, wie der Request eines asynchron parametrierten APIs verarbeitet wird:

sequenceDiagram
   title Asynchroner Request
   actor a as Service
   participant b as Backend
   participant t as TaskEngine
   participant p as ProcessEngine
   participant d as Data

   Note over b,d: Der Service muss autorisiert sein. Siehe Authorization Code Flow.

   a ->> b: POST /DynamicApi/ProcessRequest
   activate b
   b ->> b: checkPermission
   b ->> t: SaveRequest
   activate t
   t ->> d: save task
   activate d
   d -->> t: success
   deactivate d
   t -->> b: success
   deactivate t
   b -->> a: success
   deactivate b
   activate b

   t ->> t: timer #128336;
   activate t
   t ->> d: get task
   activate d
   d -->> t: task
   deactivate d
   t ->> p: executeProcess
   activate p
   loop Request-Verarbeitung
   p ->> d: select data
   activate d
   d ->> p: resultset
   deactivate d
   p ->> p: processData
   end
   p ->> d: write data
   activate d
   d -->> p: success
   deactivate d
   p -->> t: success
   deactivate p
   deactivate t
Hold "Alt" / "Option" to enable pan & zoom