Using the URL Adapter with the HTTP Protocol
On the basis of the example provided, this page describes how to use the URL adapter with the HTTP protocol.
Static GET Request
The following example shows how to access a web resource through the URL adapter.
The request operation uses the alias to identify the web resource and the method to perform. The response is a Blob. In this implementation, the response contents are mapped to a form to be displayed to the user.
In this example, the web resource is also part of the same example service (see API.HelloAPI). The URL of the resource is specified in the URL alias as follows:
Adapter Attribute | Value |
---|---|
protocol | http |
port | 11112 |
path | hello/hello/GETHelloStatic |
host | localhost |
method | GET |
Find below a list of all attributes that can be used with the HTTP protocol.
Full Dynamic GET
Sometimes URL parameters are not static but must be calculated or are know at runtime only. To reflect this, you can provide all information from the URL adapter alias dynamically on the request operation.
You can also use a mixture of static and dynamic access. Specify the static parts on the alias and provide the dynamic parts via the URL adapter parameters. This can be helpful because the settings of the alias can be changed in the service configuration later.
The following example shows a full dynamic request. All needed information to access the web resource is specified via the parameters.
Action composeURL builds the URL to access the dynamic resource of the API and the name given by the user is added.
Alias Attributes
Find below a list of relevant alias attributes, if the URL adapter is used with the HTTP protocol. Default values used when an option is not explicitly set are written in bold.
Attribute | Description | Allowed Values / Examples | |
---|---|---|---|
Standard | |||
protocol | one of: http (default), https | ||
port |
| a valid port number (default: 80) | |
path |
| ||
method |
| one of: get (default), post, put, delete, patch, head, options | |
Advanced | |||
user | Username/password. | ||
followRedirects |
| any positive integer or 0 | |
options |
| valid cURL options, e.g. | |
Proxy | |||
proxyURL |
| ||
proxyUser |
| ||
proxyType |
| one of: | |
SSL | |||
sslCAInfo |
| ||
sslCertificateFile |
| ||
sslCertificateType |
| one of: PEM (default), DER | |
sslPrivateKeyFile |
| ||
sslPrivateKeyPassword |
| ||
sslPrivateKeyType |
| one of: PEM (default), DER | |
sslVerifyHost |
| On | Verification on. |
Off | Verification off (default). | ||
Existence | Limit verification to the mere existence of the host. | ||
sslVerifyPeer |
| On | Verification on (default). |
Off | Verification off. |
URL Adapter Response
The adapter returns the following parameters:
Attribute | Type | Direction | Restrictions | Description | |
---|---|---|---|---|---|
to listed protocol only | to listed method only | ||||
httpHeaderMap | Map of Entry | out | Header information as a map. The map contains arrays of header value strings whereas the header name is the key of the map.
Refer to HTTP Header Support for more information on the standard xUML HTTP headers. | ||
httpStatus | Integer | out | http, https | Contains the HTTP status code of the response. | |
response | Blob | out | get, post, put, list, read | Contains the response content in relation to the used method. |
HTTP Headers
With xUML service adapter calls, the xUML Runtime adds the following outgoing HTTP headers containing correlation information to the request:
X-Transaction-Id or xTransactionId (in JMS context)
This header identifies the transaction the call belongs to. You can set the transaction id manually with setTransactionID() Function. If not set, the Runtime will generate one.
This header will be passed through the callstack to identify all service calls that belong to a transaction.X-Request-Id
This header identifies the unique request. The Runtime generates a unique number for each adapter call.X-Sender-Host and X-Sender-Service
These headers contain the sender host resp. the sender service. They are set by the Runtime automatically.
Transaction id and request id will be logged to the transaction log on the adapter call (refer to Contents of the xUML Service Transaction Log in the Administration Guide for more details). Having this information, you can use this for error analysis or usage metrics.
Related Pages: