This scenario describes how to build a REST service that accepts HTTP POST requests of
Document type from the client, processes it and sends the response
back. To do this, two Jobs are built: one to create the REST service and the other to
Drag and drop the following components from the Palette onto the design workspace: a tRESTRequest, a tXMLMap and a tRESTResponse.
Double-click tRESTRequest in the design workspace to display its Basic settings view.
In the REST Endpoint field, keep the default URI "http://localhost:8088/" where the REST-ful web service will be accessible for requests.
Click the [+] button to add one line in the REST API Mapping table.
Select the newly-added line and click the [...] button in the Output Flow column to add a schema for the output flow. Give the name for the schema UserInfo in this scenario.
The schema editor opens. Click the [+] button to add a new line body of
Documenttype and click OK to save the schema.
Back to tRESTRequest Basic settings view, select POST from the list in the HTTP Verb column.
Fill the field in the URI Pattern column with "/UserInfo". Keep the default settings of the other options.
Connect tRESTRequest to tXMLMap using the Row > UserInfo connection.
Double-click tXMLMap in the design workspace to open the Map Editor.
Right-click on the root node of the input table and select Create Sub-Element. Name the sub-element as person in the popup dialog box.
Right-click on the person node created in the previous step and select As loop element.
Create two sub-elements to the person node by selecting Create Sub-Element in the contextual menu, id and name in this use case.
Click the [+] button on the top right to add an output and name it as Response.
Click the [+] button on the bottom right to add a column body of
Documenttype for the output.
Right-click the node root in the output table and select Create Sub-Element. Name the sub-element as person in the popup dialog box.
Right-click the person node created in the previous step and select As loop element.
Create three sub-elements to the person node by selecting Create Sub-Element in the contextual menu, id, name and company in this use case.
Select the id column from the input table and drop it onto the Expression field of the id node of the output table.
Select the name column from the input table and drop it onto the Expression field of the name node in the output table.
Click the Expression field of the name node in the output table, and click [...] in this field to show the [Expression Builder] wizard.
In the Expression area, enter
StringHandling.UPCASE([UserInfo.body:/root/person/name])to convert the name of the user to upper case. Click OK to close the wizard.
For further information about using the Expression Builder, see Talend Studio User Guide.
In the Expression field of the company node, enter "Talend".
Click OK to save the settings.
Connect tXMLMap to a tRESTResponse using Row > Response connection.
The schema defined in tXMLMap is retrieved in tRESTResponse automatically.
Select OK(200) from the Return status code list.
Leave the rest of the settings as they are.
Drag and drop the following components from the Palette onto the design workspace: a tFixedFlowInput, a tXMLMap, a tRESTClient and a tLogRow.
Double-click tFixedFlowInput in the design workspace to display its Basic settings view.
Click Edit schema to show the schema editor. In the schema editor, click the [+] button to add two columns of
Stringtype, id and name.Click Ok to close the schema editor.
Back to tFixedFlowInput Basic settings view, in the Mode area, select the Use Inline Content option.
In the Content box, enter the id and name of three users, for example:
1;ford 2;smith 3;thomson