Data Factory > protocol-http-perform β
TL;DR;
This task allows performing one HTTP call to a given web service.
Name:
Max execution time: 120 mins
TIP
The full documentation of the behavior of this task is detailed in the Learning Center.
Technical details β
The property below are either partially or not available to date β
- This is meant to be a reminder for the development/product team for the next steps to be done.
| Property | Mandatory | Type and constraints | Description | Example | Available |
|---|---|---|---|---|---|
body | Not mandatory | Object, see detail below | The body of the request | {"type": "JSON", "json": {"foo": "bar"}} | π Partially available |
body.type | Not mandatory, Default: JSON | Enum - PLAIN, JSON, YML, XML, MULTIPART_FORM, FORM_URL_ENCODED, GRAPHQL, BINARY_FILE | The type of the body See details below for each type | JSON | π To date only JSON and MULTIPART_FORM are available |
body.use | Not mandatory Default: NONE | Enum - NONE, JSON, STRING, FILE, FORM | Defines the value used for the body of the request If use = JSON, the property body.json is used and must be defined. If use = STRING, the property body.string is used and must be defined. If use = FILE, the property body.file is used and must be defined. In this case, the content of the file is read and used as the body of the request. If use = FORM, the property body.form is used and must be defined. If use = NONE, no value is used for the body of the request. | JSON | π΄ Not vailable to date |
body.string | Not mandatory | String Max length is 100 000 characters | The body of the request in String format | foo | π΄ Not vailable to date |
body.file | Not mandatory | Object File | The body of the request in File format | {"url": "https://api.product-live.com/v1/i"} | π΄ Not vailable to date |
authentication | Not mandatory | Object | The authentication of the request | {"useAuthentication": true, "scheme": "BASIC", "login": "foo", "password": "bar"} | π΄ Not vailable to date |
authentication.useAuthentication | Not mandatory Default: true | Boolean | true: use authentication, false: do not use authentication | true | π΄ Not vailable to date |
authentication.type | Mandatory if useAuthentication = true | Enum - BASIC, BEARER, API_KEY, AWS_IAM_V4 | The authentication scheme | BASIC | π΄ Not vailable to date |
authentication.bearerValue | Mandatory if authenticationScheme = BEARER | String | The bearer token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | π΄ Not vailable to date |
authentication.bearerPrefix | Not mandatory Only if authenticationScheme = BEARER - Default: Bearer | String | The prefix of the bearer token | Bearer | π΄ Not vailable to date |
authentication.login | Not mandatory Mandatory if authenticationScheme = BASIC | String | Login | foo | π΄ Not vailable to date |
authentication.password | Not mandatory Mandatory if authenticationScheme = BASIC | String | Password | bar | π΄ Not vailable to date |
authentication.useISO88591 | Not mandatory Only if authenticationScheme = BASIC - Default: false | Boolean | true: use ISO-8859-1 encoding instead of default UTF-8 encoding, false: use default UTF-8 encoding | true | π΄ Not vailable to date |
authentication.apiKeyValue | Mandatory if authenticationScheme = API_KEY | String | The key of the API key | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | π΄ Not vailable to date |
authentication.apiKeyName | Mandatory if authenticationScheme = API_KEY | String | The name of the API key (the name of the header or the query parameter) | X-API-KEY | π΄ Not vailable to date |
authentication.apiKeyAddTo | Not mandatory Only if authenticationScheme = API_KEY | Enum - HEADER, QUERY, COOKIE | The location of the API key (the header, the query parameter or the cookie) | HEADER | π΄ Not vailable to date |
authentication.awsIamV4AccessKeyId | Mandatory if authenticationScheme = AWS_IAM_V4 | String | The access key id | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | π΄ Not vailable to date |
authentication.awsIamV4SecretAccessKey | Mandatory if authenticationScheme = AWS_IAM_V4 | String | The secret access key | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | π΄ Not vailable to date |
authentication.awsIamV4Region | Mandatory if authenticationScheme = AWS_IAM_V4 | String | The region | eu-west-1 | π΄ Not vailable to date |
authentication.awsIamV4ServiceName | Mandatory if authenticationScheme = AWS_IAM_V4 | String | The service name | execute-api | π΄ Not vailable to date |
delayMilliseconds | Not mandatory Default: 0 | Number Must be lower than 10e5 | The delay in milliseconds before executing the request | 150 | π΄ Not vailable to date |
Header X-User-Agent β
The header X-User-Agent is automatically added to the request with the following value: Product-Live Data-Factory/3.0.0. This value may not be surcharged by the user.
Error handling β
The task itself, like every other task, has a status code and can finish in a successful state or failure state. This should not be confused with the status sent by the distant service that is being queried. If the distant service responded, even with an http error code (404, 500 ...), the task will be considered sucessful. If the distant service cannot be reached, either because of a faulty domain, a timeout, or an input that does not fit the limitations the task will be considered a failure.
Authentication type β
To date, only the PL authentication type is available. It's purpose is to automatically generate an API key to perform requests against the Product-Live API on behalf of the user who started the current job. This feature may be extended in the future to allow other types of authentication (such as BASIC, BEARER, API_KEY, AWS_IAM_V4, GCP_IAM, ...).
Techical limitations and Recommendation β
| Description | Limitation | Recommendation |
|---|---|---|
| Max execution time | 120 mins | 5 mins |
| Max number of requests per day | - | 100 000 |
Appendices β
What is an URL? β
A URL is composed of different parts, some mandatory and others optional. The most important parts are highlighted on the URL below (details are provided in the following sections):
Source: developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL
