Creating REST Consumer

This section explains the process of creating web service consumer for RESTful Web Service.

Follow the steps below to create a REST Consumer:

  1. Click Configure > WEB SERVICES > REST Consumer.

  2. Click Create REST Consumer

  3. On the Create REST Consumer window, in the Name and Description fields, provide a name and description for REST Consumer. 



  4. The Character Set Encoding field will display you the default character set encoding, you can define this at the application level. You can also change the character set encoding as per your requirements.
  5. In the URL field, enter the URL of the Web Service that you want to invoke.

    You need to pass the request in the URL.
    You can also define the values of the parameters in the Parameter table.
  6. To populate the Parameter table automatically from a URL, click the Extract Param from URL. You can also populate the Parameter table along with their default values by giving the query parameters in the URL itself.

    You can dynamically override a complete URL or any parameter of the URL with the value of any variable. To do this you need define the variable name in the URL field.
  7. Select the style of the parameters from the Style drop-down list. It could be Query or Header.

    If you want to pass parameters as a part of HTTP request then, you need to select Header in the Style drop-down list.

  8.  Select the HTTP method from the drop-down list of Method. You can select any of the following methods depending on what the application API supports:

    • Get
    • Put
    • Post
    • Patch
    • Delete

    GET is used to fetch data. POST is generally used to create or store new data, while PUT is used to update existing data. Patch is used to make minor changes or updates to the resource at the target location.
  9. Define the Type and Media Type in the Presentation table.

    Important

    Enter Media Type as text/plain for Type Response.
  10. Select a security policy from the Security Policy drop-down list.

    When you use either Put, Post, or Patch method, then following two additional options are displayed.

    • Post Query String
    • Enable Multipart

    Post query string is used to pass the query parameters in RESTful Request.  To send the query  parameters with Put or Post method, enable the Post Query String option and define the parameters in the Parameter table. 

    Enable Multipart is used to the post the file to the RESTful Webservice.  To send a file follow the below steps:

    • Enable the Enable Multipart option.
    • In the Part Name field enter the name of the form-data field.
    • Enter the name of the file in the File Name  field. This name will be used for the file, which will be posted to the Web Service. You have to pass the file, which you want to send through this consumer, as a source stream. You use file source activity to achieve it.
    • Modify the media type in the presentation table as explained below.

    Media type for Request should be multipart/form-data

    Media type for Response varies for different web service.  It can be application/json or application/xml.

    Change Content Type of Multipart and Disposition Order

    To change the Content-type of multipart and disposition order, you need to set the following variables in the process flow:

    For Content Type: Service.{EntityName}.attachmentMediaType

    For Disposition Type: Service.{EntityName}.ReOrderContentDisposition = true

    here the EntityName is the web services consumer activity name, for example: Service.WeatherReport.attachmentMediaType=application/xml


    To send one or multiple payloads along with the file,

    Define the Context Variable Service.<Consumer Entity Name>.multipartParams in the Process Flow.

    If you have only one payload to be sent, you can alternatively define the following Context Variables in the Process Flow.

    • multipartRequestBody
    • multipartRequestBodyType

    multipartRequestBody - Enter payload as the value for this variable.

    multipartRequestBodyType - Enter the media/content type of payload as the value for this variable.

    Once defined, you can pass the payloads (in key-value pairs), separated by comma, as the value to this Context Variable. Given below is the example of two payloads in key-value pair.

    param1=value1,param2=value2

    If the value for any of the keys contains a comma (,) or equal to (=) characters, wrap the value in another Context Variable, and override the value of the key with this Context Variable.

    For example, if you have a key named param2 and the value to it is version=1, define a new Context Variable Var1 with the value version=1. Then, override the value of param2 as shown below: 

    param2=$$Var1$$

  11. Expand the Advanced Properties and do the following:

    1. If you do not want your RESTful web service consumer activity to wait indefinitely for a response from a web service provider then, enter a timeout value in the Read Timeout (in seconds) text box. The default value is 0 which means your RESTful web service consumer activity will wait indefinitely for a response.

    2. If you want to enter a time within which your RESTful web service consumer activity should connect to a web service then, enter a timeout value in the Connect Timeout (in seconds) text box. The default value is 0 which means your RESTful web service consumer activity will wait indefinitely for a connection.
    3. In the Project field, select the project.
  12. Click Save.

Accessing an SSL endpoint

To access any SSL endpoint, you need to import the endpoint's SSL certificate to Adpetia Connect and use it in the Rest Consumer. To do so, follow the steps given below:

  1. Create a Truststore to store the SSL certificate.

    You can also import/store the SSL certificate to the default Truststore DefaultTruststore. For more details, refer to this section.

    You can see the list of all the truststores by going to Configure > SECURITY > Keystore/Truststore screen. 

  2. Create a security policy using the Truststore that you created in step 1.
    The field for selecting the Truststore while creating a Security Policy is highlighted in the screenshot below.

  3. Use the Security Policy you created in step 2 for the REST Consumer.