跳转到内容

request-transformer

此内容尚不支持你的语言。

The request-transformer plugin modifies requests before they reach the backend.

  • Phase: Access
  • Purpose: Transform request headers, query, body, and path
  • Behavior: Applies transformations before proxying
{
"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/"
}
}
}

Use variables in transformations:

VariableDescription
${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}"]
}
}

Transform JSON request body fields:

{
"add": {
"body": ["source: gateway"]
},
"remove": {
"body": ["internal_field"]
},
"rename": {
"body": ["oldName: newName"]
}
}

Add or modify query parameters:

{
"add": {
"query": ["api_version=2"]
},
"remove": {
"query": ["debug"]
}
}

Use * for pattern matching:

{
"remove": {
"headers": ["X-Internal-*", "X-Debug-*"]
}
}

Removes all headers matching the pattern.

Use regex for complex replacements:

{
"replace": {
"headers": ["User-Agent: (.*): Gateway/$1"]
}
}