RestClientApp
REST Client Application Configuration
The N2SVCD REST Client Application supports sending of REST requests over HTTP.
Typical uses of the RestClientApp are:
- Any LogicApp Lua script (e.g. a test script or a service script) can initiate outbound REST requests (via the RestLuaAgent agent plugin).
- A JSON-format TesterApp script can use the
rest.RequestTest operation to useRestClientAppto send outbound REST requests.
This is done by internally sending and receiving REST-...
messages over the n2svcd message bus.
See the N2SVCD Configuration Overview for more information on how the REST Application interacts with other components.
The following configuration is used to create a REST Client Application instance.
<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
...
<applications>
...
<application name="REST-CLIENT" module="RestClientApp">
<include><lib>../apps/rest_c/lib</lib></include>
<parameters>
<parameter name="trace_level" value="0"/>
<parameter name="remote_host" value="localhost"/>
<parameter name="remote_port" value="8118"/>
<parameter name="path" value="/servlet/ABC"/>
<parameter name="num_client_connections" value="3"/>
<parameter name="request_remote_timeout" value="2"/>
<parameter name="ping_interval" value="3"/>
<parameter name="ping_path" value="/ping"/>
<parameter name="ping_expected_code" value="200"/>
</parameters>
<config>
<http_headers>
<http_header name="x-api-key" value="aaaaaa-bbbbbb-ccccc-dddddd"/>
</http_headers>
</config>
</application>
...
</applications>
...
</n2svcd>
Configuration Details
The application element attributes for a REST Client Application instance may include the below.
For details of the various parameter types used, refer to Common Configuration.
| Parameter Name | Type | XML Type | Description |
|---|---|---|---|
| See: Common Application configuration | |||
| See: TCP/UDP Application configuration | |||
module
|
String | Attribute |
[Required] RestClientApp
|
include.lib
|
String | Element |
[Required] ../apps/rest_c/lib
|
parameters
|
Array | Element |
[Required] As per Common Configuration Application parameters.
|
edr_enabled
|
- | - | This value is ignored; the REST Client Application does not support writing EDRs. |
socket_mode
|
String | Attribute |
The REST Client Application supports only connect (TCP Client).(Default = connect)
|
remote_host
|
String | Attribute |
[Required] As per common TCP configuration for remote_host.
|
remote_port
|
Integer | Attribute |
As per common TCP configuration for remote_port.(Default = 80)
|
ping_supported
|
Boolean | Attribute |
Whether or not the Rest Client App should perform ping checks against a configured rest path. (Default = False) |
ping_path
|
String | Attribute |
The path component of the Ping REST URL. (Default = No Default) |
ping_expected_code
|
String | Attribute |
The expected HTTP response code(s) to check for when executing Ping checks against the configured ping_path.If the response code is not present or does not match the expected response code the application will be set as OFFLINE.(Default = 200) May be a single response code, or a comma-separated list if multiple response codes are valid. |
path
|
String | Attribute |
The default path component of the REST URL. This may be overridden for each request. (Default = No Default) |
security
|
String | Attribute |
The security for the HTTP Interaction, either basic or none.This may be overridden for each request. (Default = none)
|
username
|
String | Attribute |
The HTTP Basic Access Authentication username to use for the HTTP Interaction. This may be overridden for each request. (Default = No Default) |
password
|
String | Attribute |
The HTTP Basic Access Authentication password to use for the HTTP Interaction. This may be overridden for each request. (Default = No Default) |
config
|
Object | Element | Container for extended configuration for this Application instance. |
http_request_headers
|
Array | Element |
Array of REST http_request_header elements for additional HTTP headers to append to each HTTP REST Request.
|
Note: the REST Client Application only allows one outstanding request per client connection.
REST Request Headers
Each http_request_header Object in the config.http_request_headers Array is configured as follows.
| Parameter Name | Type | XML Type | Description |
|---|---|---|---|
name
|
String | Attribute | [Required] The HTTP Request Header key. |
value
|
String | Attribute | [Required] The HTTP Request Header Value. |
Each configured custom static HTTP header will be included in all outbound requests, in addition to the base headers added by the application.
Message Handling
In addition to the common Application management messages, the REST Client Application uses the following messages:
- REST-C Messages (
REST-C-REQUESToutbound).