Wenn Sie einen Endpunkt für einen Geschäftsprozess erstellen, müssen Sie die Art der Daten angeben, die in dieser Anfrage gesendet werden (Request payload type). Die gebräuchlichste Option ist JSON; sie ermöglicht die bequeme Angabe aller erforderlichen Parameter und die Übergabe eines Datenmodells oder eines Arrays von Objekten. Darüber hinaus sind auch andere Optionen möglich, z. B. XML oder Multipart Form (wenn Sie Dateien senden müssen).
Gleichzeitig ist eine Situation akzeptabel, in der die genaue Struktur nicht im Voraus bekannt ist (oder es einfach keine Rolle spielt). In diesem Fall ist die Verwendung von "raw"-Abfragen eine sinnvolle Option.
Geschäftsprozess für raw Abfragen
Stellen Sie sich eine Situation vor, in der dies erforderlich sein könnte. Nehmen wir an, der Dienst, den wir entwickeln, ist nur ein Verbindungsglied. Seine Aufgabe ist es, eine Anfrage vom Benutzer zu empfangen, die Berechtigung zu prüfen, Protokolle zu speichern, Spamschutz zu betreiben und die Anfrage weiterzuleiten, wenn alles in Ordnung ist.
Ein wichtiges Merkmal der Raw Abfragen ist, dass beim Entwurf von Geschäftsprozessen keine Eingabeparameter verwendet werden. Stattdessen wird ein spezieller Block verwendet, um den Körper der Anfrage zu erhalten - Get Request Body. Angenommen, Sie sind an erweiterten Informationen über die Anfrage interessiert. In diesem Fall ist der Current Request Info Block eine geeignete Option - er liefert nicht nur den Request Body, sondern auch zusätzliche Parameter und Request Header.
Wenn wir an einem bestimmten Header der Anfrage interessiert sind, können wir ihn mit dem Get Request Header Block. Das obige Beispiel liest den X-Real-IP Header, der die IP-Adresse der Anfrage enthält. Die sich daraus ergebende IP-Adresse wird an eine Funktion übergeben, die prüfen muss, ob die angegebene IP-Adresse gültig ist und nicht auf der schwarzen Liste der verbotenen Adressen steht. Infolgedessen wird der Vorgang entweder mit einer entsprechenden Fehlermeldung abgebrochen oder, wenn alles in Ordnung ist, die weitere Ausführung zugelassen.
Die Anfrage, die als Raw empfangen wird, wird als ein Array von Bytes dargestellt. Zur Vereinfachung der Wahrnehmung kann sie in eine Zeichenkette umgewandelt werden (To String Block) umgewandelt werden; in dieser Form werden die Informationen in den Protokollen gespeichert.
In diesem Fall kann die Anfrage selbst, ohne jegliche Umwandlung, mit Hilfe des HTTP Request Block. In diesem Beispiel werden die Anfragemethode, ihre URL und der Anfragebody (aus dem Current Request Info Block) angegeben. Das Ergebnis des HTTP Request Blocks wird als Ergebnis des gesamten Geschäftsprozesses verwendet.
Der Screenshot zeigt den endgültigen Geschäftsprozess. Bitte beachten Sie, dass die Funktionsblöcke (FUNC Save request Log und FUNC IP Blacklist Check) Beispiele sind und nur im Rahmen dieses Projekts existieren.
Der Endpunkt kann also für jede beliebige Anfrage verwendet werden, unabhängig von ihrem tatsächlichen Inhalt. Sie müssen die genaue Anfrage, die an einen Drittanbieterdienst gesendet werden soll, nicht kennen, und selbst wenn es einige Änderungen darin gibt (Hinzufügen eines Modells, Umbenennen von Parametern), können Sie den Endpunkt weiterhin verwenden, ohne Änderungen am Projekt vorzunehmen.