What is a pipeline request? It is a plugin that can sequentially request different nodes and pass the response body among them. One can use it to post-process the original response.
When handling client requests, the plugin will iterate through the nodes section of the configuration, requesting them in turn.
In the first request, it will send the complete method, query, header, and body of the client request, while in subsequent requests it will only send the last response with the POST method.
The successful response will be recorded in a temporary variable, and each request in the loop will get the response body of the previous request and overwrite the response body of the current request.
When the loop ends, the response body will be sent to the client as the final response.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| nodes | array[node] | True | An array of individual request targets, each of which will be requested by the plugin in turn. | |
| nodes.[].url | string | True | The URL of the target API. | |
| nodes.[].ssl_verify | boolean | False | True | Whether to verify the server certificate when requesting. If on then a trust certificate must be configured for APISIX. |
| nodes.[].timeout | integer | False | 3000 | Request timeout time in milliseconds. |
| nodes.[].keepalive | boolean | False | True | Whether to enable HTTP connection pooling. |
| nodes.[].keepalive_timeout | integer | False | 60000 | Survival time of a single HTTP connection in milliseconds. |
| nodes.[].keepalive_pool | integer | False | 5 | The number of connections cached in the HTTP connection pool. |