HTTP transform¶
This transform performs HTTP POST requests to a HTTP capable endpoint. The service at the endpoint then transforms the entities contained in the request body and returns them in the HTTP response message .
The HTTP endpoint must accept application/json
and the response must also be application/json
.
The endpoint must support lists of entities only, i.e. it should expect to receive a JSON array and it should always return a JSON array. If the endpoint returns anything other than a “2xx Success” HTTP status code, the transform will raise an exception.
The endpoint is free to decide how the entities are transformed. It’ll just have to produce a list of zero or more entities from the entities it was posted. This means that entities can be transformed, filtered out or new ones created.
Note that for most use cases you can and should use the more general and flexible REST transform instead.
Properties¶
Property |
Type |
Description |
Default |
Req |
---|---|---|---|---|
|
String |
The id of the URL system or microservice system component to use. |
Yes |
|
|
Object |
The URL to HTTP POST entities to. |
Yes |
|
|
Integer |
The maximum number of entities to POST in each request. If there are more entities than this then they’ll be split across multiple HTTP requests. |
100 |
|
|
Dict<String,String> |
An optional set of header values to set in the HTTP request. Both keys and values must evaluate to strings. |
||
|
Boolean |
Set to |
|
|
|
Object |
A dictionary with two properties: |
Example configuration¶
{
"_id": "my-http-transform-service",
"type": "system:url",
"base_url": "http://localhost:8080/transforms/"
},
{
"_id": "deduplicated-men",
"type": "pipe",
"source": {
"type": "dataset",
"dataset": "men"
},
"transform": {
"type": "http",
"system":"my-http-transform-service",
"url": "http://localhost:8080/transforms/deduplicate",
"batch_size": 5,
"headers": {
"some-header": "some-value"
},
"trigger_on": {
"key":"_trigger",
"value": "some-value*"
}
}