Eingabeparameter übergeben
- REST-Service mit einem einfachen Parameter aufrufen
- REST-Service mit einem komplexen JSON-Parameter aufrufen
- REST-Service mit einem XML-Parameter aufrufen
- REST-Service mit mehreren Parametern aufrufen
- REST-Service mit einem Array-Parameter aufrufen
REST-Service mit einem einfachen Parameter aufrufen
Im folgenden Beispiel wird eine Operation mit dem Namen echo
für einen Service mit dem Namen MyExternalService
aufgerufen und die Antwortattribute werden in die Protokolldatei ausgegeben.
// prepare REST request
var request = new BPMRESTRequest();
request.externalServiceName = "MyExternalService";
request.operationName = "echo";
// prepare the one string parameter that is needed for the REST request
request.parameters = {"text": "hello world!"};
// invoke the REST request, which returns a BPMRESTResponse instance.
var response = tw.system.invokeREST(request);
// have a look at the response
log.info("Response - httpStatusCode: " + response.httpStatusCode);
log.info("Response - httpStatusMessage: " + response.httpStatusMessage);
log.info("Response - httpHeaders: " + response.httpHeaders);
log.info("Response - content: " + response.content);
REST-Service mit einem komplexen JSON-Parameter aufrufen
Im folgenden Beispiel wird das Angeben eines JSON-Objekts als Eingabeparameter dargestellt. Außerdem wird der Antwortinhalt syntaktisch analysiert und in eine neue Variable gestellt.
// prepare REST request
var request = new BPMRESTRequest();
request.externalServiceName = "MyExternalService";
request.operationName = "addCustomer";
// set http headers
var headers = {"Content-Type": "application/json",
"Accept": "application/json"};
request.httpHeaders = headers;
// prepare the complex-typed input parameter that is needed for the REST request
// we provide the complex type (BO) as JSON object.
request.parameters = {"customer": {"name" : "Hugo",
"age" : "32",
"since" : "2016-08-14T22:44:53Z"}};
// invoke the REST request, which returns a BPMRESTResponse instance.
var response = tw.system.invokeREST(request);
// have a look at the response
log.info("Response - httpStatusCode: " + response.httpStatusCode);
log.info("Response - httpStatusMessage: " + response.httpStatusMessage);
log.info("Response - httpHeaders: " + response.httpHeaders);
log.info("Response - content: " + response.content);
var content = JSON.parse(response.content);
log.info("Response - content.message: " + content.message);
REST-Service mit einem XML-Parameter aufrufen
Im folgenden Beispiel wird das Angeben eines XML-Dokuments als Eingabeparameter für einen REST-Service dargestellt. Ein Geschäftsobjekt wird in eine XML-Zeichenfolge konvertiert, die als Hauptteil der REST-Anforderung dient.
// prepare REST request
var request = new BPMRESTRequest();
request.externalServiceName = "MyExternalService";
request.operationName = "addCustomer";
// set http headers
var headers = {"Content-Type": "application/xml",
"Accept": "application/xml"};
request.httpHeaders = headers;
// prepare a custom business object that has been discovered or modeled
tw.local.customer = new tw.object.Customer();
tw.local.customer.name = "Hugo";
tw.local.customer.age = 32;
var date = new TWDate();
tw.local.customer.since = date;
// prepare the input parameter for the REST request
// because the 'content-type' is set to 'application/xml', provide the business object as an XML string.
request.parameters = {"customer": tw.local.customer.toXMLString()};
// invoke the REST request, which returns a BPMRESTResponse instance.
var response = tw.system.invokeREST(request);
// have a look at the response
...
Content-Type
und Accept
korrekt angeben, damit sie dem von Ihnen angegebenen Inhaltstyp entsprechen und als Antwort akzeptiert werden. Feldnamen und -werte für Anforderungsheader werden von Business Automation Workflownicht validiert.REST-Service mit mehreren Parametern aufrufen
Im folgenden Beispiel wird dargestellt, wie das vorherige Beispiel
erweitert werden kann, wenn für den REST-Service der Parameter customerId
zusätzlich zum Parameter customer
erforderlich ist.
// prepare REST request
var request = new BPMRESTRequest();
request.externalServiceName = "MyExternalService";
request.operationName = "addCustomer";
// set the http headers
var headers = {"Content-Type": "application/json",
"Accept": "application/json"};
request.httpHeaders = headers;
// prepare all input parameters that are needed for the REST request
// the parameters are handed over in the parameters object
request.parameters = {"customer": {"name" : "Hugo",
"age" : "32",
"since" : "2016-08-14T22:44:53Z"},
"customerId": "1234"};
// invoke the REST request, which returns a BPMRESTResponse instance.
var response = tw.system.invokeREST(request);
// have a look at the response
...
REST-Service mit einem Array-Parameter aufrufen
Im folgenden
Beispiel wird dargestellt, wie ein Array mit Informationen für customer
als Array-Parameter customers
übergeben werden kann.
// prepare REST request
var request = new BPMRESTRequest();
request.externalServiceName = "MyExternalService";
request.operationName = "addCustomers";
// prepare array parameters for the REST request
request.parameters = {"customers":
[{"customer": {"name" : "Hugo",
"age" : "32",
"since" : "2016-08-14T22:44:53Z"}},
{"customer": {"name" : "Max",
"age" : "23",
"since" : "2016-08-14T22:44:53Z"}}]};
// invoke the REST request, which returns a BPMRESTResponse instance.
var response = tw.system.invokeREST(request);
// have a look at the response
log.info("Response - httpStatusCode: " + response.httpStatusCode);
log.info("Response - httpStatusMessage: " + response.httpStatusMessage);
log.info("Response - httpHeaders: " + response.httpHeaders);