Transmission de paramètres d'entrée
- Appel d'un service REST avec un paramètre de type simple
- Appel d'un service REST avec un paramètre JSON de type complexe
- Appel d'un service REST avec un paramètre XML
- Appel d'un service REST avec plusieurs paramètres
- Appel d'un service REST avec un paramètre de tableau
Appel d'un service REST avec un paramètre de type simple
Dans l'exemple suivant, une opération nommée echo est appelée pour un service nommé MyExternalServiceet les attributs de réponse sont générés dans le fichier journal.
// 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);
Appel d'un service REST avec un paramètre JSON de type complexe
L'exemple suivant illustre comment spécifier un objet JSON en tant que paramètre d'entrée. Il analyse également le contenu de la réponse dans une nouvelle variable.
// 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);
Appel d'un service REST avec un paramètre XML
L'exemple suivant illustre comment fournir un document XML en tant que paramètre d'entrée pour un service REST. Un objet métier est converti en une chaîne XML qui sert de corps à la demande REST.
// 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 et Accept correctement pour qu'ils correspondent au type de contenu que vous fournissez et que vous accepterez en tant que réponse. Les noms et les valeurs des zones d'en-tête de demande ne sont pas validés par Business Automation Workflow.Appel d'un service REST avec plusieurs paramètres
L'exemple suivant présente
comment étendre l'exemple précédent si le service REST exigeait un
paramètre customerId en plus du paramètre
customer.
// 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
...Appel d'un service REST avec un paramètre de tableau
L'exemple suivant présente comment
un tableau d'informations de type customer peut être
transmis en tant que paramètre de tableau customers.
// 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);