Die Verarbeitung von Web Services ist je nach Aufruftyp unterschiedlich. Es gibt folgende Typen:
- Aufruf eines Web Service Makros
- Aufruf eines Remote Procedure Calls (RPC)
Aufruf eines Web Request Makros
Solche Aufrufe werden als HTTP Requests ausgefführt. Ein Beispiel ist im Folgenden aufgeführt:
GET /SSD/RequestName/Add1/Add2 HTTP1.1 Host: services.customer.com Content-Length: 39 {"Data1":"content1","Data2":"content2"} |
---|
Hier wird in der URL "SSD" angegeben, was bedeutet, dass das Modul SSD (Reporting) angesprochen wird. Anschliessend ist "RequestName" der Name des dort definierten Web Requests, der aufgerufen werden soll. Alle weiteren Teile der URL werden vom Request interpretiert. In diesem Beispiel wird ein JSON Objekt als Daten mitgegeben. Dies hängt davon ab, welche Daten der angesprochene Request benötigt.
Möglich sind folgende Operationen (welche der angesprochene Request dann verstehen muss): GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE.
Es sind beliebige weitere Header Einträge zulässig. Der angesprochene Request kann diese bei der Verarbeitung berücksichtigen.
Als Antwort wird ein entsprechendes HTTP Paket zurückgeschickt, welches der aufrufende Server entsprechend behandeln muss.
Aufruf eines Interface Requests
Eine zweite Möglichkeit besteht darin, Interface Requests abzusetzen. Es ist so möglich, Verarbeitungrn an einen Server auszulagern. Das Ende der Veraarbeitung kann, muss aber nicht, abgewartet werden.
Solche Aufrufe werden mit dem Keyword "RPC" gemacht, wie in folgendem Beispiel.
GET /RPC HTTP1.1 Host: services.customer.com Content-Length: 39 {"Data1":"content1","Data2":"content2"} |
---|
Die Steuerung der Operation geschieht zum Teil über Headerinformationen und zum anderen Teil über die Nutzdaten.
Headereintrag | Datentyp | Beschreibung |
---|---|---|
SMTRequestType | intteger | 0: SSD_RequestType_Custom 1: SSD_RequestType_HTTP 2: SSD_RequestType_CallMacro 3: SSD_RequestType_Report 4: SSD_RequestType_None |
SMTRequestDataType | intteger | 0: SSD_RequestDataType_None 1: SSD_RequestDataType_JSON 2: SSD_RequestDataType_XML 3: SSD_RequestDataType_Binary 4: SSD_RequestDataType_HTTP 5: SSD_RequestDataType_Text |
SMTWaitOnRequestCompletion | intteger | Wenn vorhanden und <> 0, dann wird das Ende der Verarbeitung abgewartet und ein allfälliges Resultat zurückgeschickt. |
SMTWaitOnRequestCompletionTimeout | intteger | Default = 20 Zeit in Sekunden, die maximal für die Verarbeitung gewartet werden soll. Wir das Timeout überschritten, dann wird die Fehlermeldung 408 Request Timeout zurückgegeben. |
SMTReferenceRequestID | intteger | Soll der Datensatz als Zusatzdatensatz gespeichert werden, dann kann hier eine ID des Hauptrequests angegeben werden |
SMTReportName | string | Name des Reports oder des Makros, welches ausgeführt werden soll. |