AWS API Gateway不会更改HTTP请求体。它会透传完整的请求体到后端服务。
如果你在使用AWS API Gateway时发现请求体被更改了,可能是由于其他原因导致的。以下是一些常见的原因和解决方法:
使用Lambda集成时,API Gateway可能会对请求体进行JSON转换。你可以在API Gateway中的集成请求页面中禁用此功能。在集成请求页面中选择"Mapping Templates"选项卡,然后删除或注释掉请求模板中的JSON转换代码。
如果你在API Gateway前使用了CloudFront,CloudFront可能会修改请求体。你可以在CloudFront的行为设置中禁用请求体修改功能。
以下是一个使用AWS API Gateway和Lambda集成的示例代码,以演示如何禁用API Gateway对请求体的更改。
import json
def lambda_handler(event, context):
# 获取请求体
request_body = event['body']
# 在这里处理请求体
# 构建响应对象
response = {
'statusCode': 200,
'body': json.dumps(request_body)
}
return response
在这个示例中,Lambda函数将接收到的请求体直接返回,没有对其进行任何更改。