request-transformer
The request-transformer plugin modifies requests before they reach the backend.
Overview
Section titled “Overview”- Phase: Access
- Purpose: Transform request headers, query, body, and path
- Behavior: Applies transformations before proxying
Configuration
Section titled “Configuration”{ "pluginName": "request-transformer", "config": { "add": { "headers": ["X-Gateway: true"], "query": ["source=gateway"] }, "set": { "headers": ["X-Forwarded-Proto: https"] }, "remove": { "headers": ["X-Internal-*"] }, "rename": { "headers": ["X-Old: X-New"] }, "replace": { "path": "/api/v1/: /v2/" } }}Transformation Types
Section titled “Transformation Types”Usage Example
Section titled “Usage Example”Template Variables
Section titled “Template Variables”Use variables in transformations:
| Variable | Description |
|---|---|
${request_id} | Unique request ID |
${timestamp} | Current timestamp |
${consumer.id} | Consumer ID (if auth) |
${route.id} | Matched route ID |
${service.id} | Matched service ID |
Example:
{ "add": { "headers": ["X-Consumer-ID: ${consumer.id}"] }}Body Transformation
Section titled “Body Transformation”Transform JSON request body fields:
{ "add": { "body": ["source: gateway"] }, "remove": { "body": ["internal_field"] }, "rename": { "body": ["oldName: newName"] }}Query Transformation
Section titled “Query Transformation”Add or modify query parameters:
{ "add": { "query": ["api_version=2"] }, "remove": { "query": ["debug"] }}Wildcard Patterns
Section titled “Wildcard Patterns”Use * for pattern matching:
{ "remove": { "headers": ["X-Internal-*", "X-Debug-*"] }}Removes all headers matching the pattern.
Regex Replacement
Section titled “Regex Replacement”Use regex for complex replacements:
{ "replace": { "headers": ["User-Agent: (.*): Gateway/$1"] }}Best Practices
Section titled “Best Practices”See Also
Section titled “See Also”- response-transformer - Transform responses
- key-auth - Authentication headers