Welcome Guest! Log in
Stambia versions 2.x, 3.x, S17, S18, S19 and S20 are reaching End of Support January, 15th, 2024. Please consider upgrading to the supported Semarchy xDI versions. See Global Policy Support and the Semarchy Documentation.

The Stambia User Community is moving to Semarchy! All the applicable resources have already been moved or are currently being moved to their new location. Read more…


This article explains how to configure your Stambia Published Web Services to receive and / or send an HTTP Body.

The HTTP Body is the main part of a Web Service invocation, containing the body of the request.

Stambia Web Services can be configured to retrieve the HTTP Body provided by the user at invocation, and return, if needed, another HTTP Body to the user at the end of the invocation.

 

Prerequisites:
  • This is only available for the HTTP REST API
  • Stambia DI Runtime S17.3.0 or higher

 

Note:

This should be used to retrieve and return raw data, like plain text.

For structured data, such as JSON or XML, prefer using dedicated Metadata for input / Output.

To return a specific HTTP response code, please refer to this article.

 

Configuration of the Input HTTP Body

To retrieve the raw HTTP Body sent by the user invoking the Web Service, the idea is to store it in a Process Parameter.

It will next be available as usual in the Process.

 

Creation of the Process Parameters

First, create the Process Parameter that will receive the value of the HTTP Body.

Design it as usual, and optionally set a default value to avoid the case where it wouldn't be provided by the user.

requestBodyParameter

 

Configuration of the META-INF

Next, lead to the main Process Properties, and open the Meta-Inf tab.

Add in the box the following sample of code and replace it with your own settings:

<httpRestWebServiceProperties extractRequestInfo="false">
    <requestBodyMapper parameterName="requestBody" charset="UTF-8"/>    
</httpRestWebServiceProperties>

 

Attribute Description Example
parameterName The name of the Process Parameter in which the body will be stored requestBody
charset Charset used for the returned body UTF-8

 

Using the parameter in the Process

That's it, you can now publish the Process as a Web Service.

At each invocation, the Process Parameter defined here will be filled with the HTTP Body provided by the user calling the Web Service.

You can use the Process Parameters as usual in your flow.

 

Configuration of the Output HTTP Body

When the invocation of the Web Service is finished, there is the possibility to return a raw HTTP Body to the user.

As for the input HTTP Body, the idea is to return the value of a Process Parameter.

 

Creation of the Process Parameter

First, create the Process Parameters that will contain the value of the HTTP Body to return to the user.

Design it as usual, and optionally set a default value to avoid the case where it wouldn't be filled during the Process.

responseBodyParameter

 

Configuration of the META-INF

Next, lead to the main Process Properties, and open the Meta-Inf tab.

Add in the box the following sample of code and replace it with your own settings:

<httpRestWebServiceProperties extractRequestInfo="false">
    <responseBodyMapper parameterName="responseBody" charset="UTF-8"/>    
</httpRestWebServiceProperties>

 

Attribute Description Example
parameterName The name of the Process Parameter that will contain the HTTP Header value. responseBody
charset Charset used for the returned body UTF-8

 

Usage

At the end of the Web Service invocation, the HTTP Body specified will be sent back to the user.

The value sent is the value of the corresponding Process Parameter, which should be filled during the Process execution.

 

Remarks

If you are mixing Input / Output HTTP Body, make sure to put all the nodes under the same <httpRestWebServiceProperties /> root node.

For instance:

<httpRestWebServiceProperties extractRequestInfo="false">
    <requestBodyMapper parameterName="requestBody" charset="UTF-8"/>    
    <responseBodyMapper parameterName="responseBody" charset="UTF-8"/>    
</httpRestWebServiceProperties>

 

Articles

Suggest a new Article!