You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS API Gateway HTTP API:如何在返回调用方前修改API响应

AWS API Gateway HTTP API 修改响应的实现方法

当然可行,下面是几种常用的实现方式:

1. 利用响应模板(Response Templates)做简单修改

这种方式适合快速调整响应格式、重命名字段或添加固定内容,不需要额外代码:

  • 进入HTTP API的集成配置页面,找到Response Templates模块
  • 选择需要修改的响应状态码(如200 OK),添加对应模板
  • 使用Velocity模板语言(VTL)编写转换逻辑,示例如下:
#set($inputRoot = $input.path('$'))
{
  "processed_msg": "$inputRoot.original_message",
  "service_tag": "api-gateway-modified"
}

该模板会将原响应的original_message字段重命名为processed_msg,并新增一个固定值的service_tag字段。

2. 通过Lambda函数实现复杂响应处理

如果需要基于业务逻辑修改响应(比如调用外部接口补充数据、过滤敏感信息),可以用Lambda做后置处理:

  • 创建Lambda函数,接收API Gateway传递的原始响应数据
  • 在函数中编写自定义逻辑修改响应,示例Python代码:
import json

def lambda_handler(event, context):
    # 解析原始响应
    raw_response = json.loads(event['body'])
    # 执行修改逻辑:过滤敏感字段+添加统计信息
    cleaned_data = {k: v for k, v in raw_response.items() if k != 'sensitive_info'}
    cleaned_data['request_count'] = 1000
    # 返回修改后的结果
    return {
        'statusCode': 200,
        'body': json.dumps(cleaned_data),
        'headers': {'Content-Type': 'application/json'}
    }
  • 将HTTP API的集成目标设置为该Lambda,或者在现有后端集成之后添加Lambda作为集成链的一环。

3. 使用响应转换(Response Transformation)做格式转换

针对JSON、XML等不同格式的转换需求,可以用API Gateway内置的转换功能:

  • 在集成配置中启用Response Transformation
  • 选择转换类型(如JSON到JSON),用JSONata表达式编写转换规则,示例:
{
  "data": $.response_data,
  "generated_at": $now()
}

这个表达式会提取原响应的response_data作为新响应的data字段,并自动添加当前时间戳generated_at。

内容的提问来源于stack exchange,提问作者YulePale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:06:00