要在AWS API网关中无服务器验证请求体并返回错误消息,可以使用API网关的请求体模板功能和Lambda函数来实现。
以下是一个示例解决方案的步骤:
import json
def lambda_handler(event, context):
# 验证请求体
if 'name' not in event['body']:
return {
'statusCode': 400,
'body': json.dumps({'error': 'Name is required'})
}
if 'email' not in event['body']:
return {
'statusCode': 400,
'body': json.dumps({'error': 'Email is required'})
}
# 验证通过,返回成功响应
return {
'statusCode': 200,
'body': json.dumps({'message': 'Request body is valid'})
}
在API网关中创建一个POST方法,并关联上述Lambda函数作为集成。
在API网关的POST方法中,配置请求体模板。在“集成请求”部分,选择“映射模板”选项,然后选择“添加映射模板”。
在“内容类型”输入框中,输入“application/json”(或其他适合您的请求体类型)。
在“模板”输入框中,输入以下内容:
#set($inputRoot = $input.json('$'))
$inputRoot
现在,当使用该API网关进行POST请求时,它将首先调用Lambda函数进行请求体验证。如果请求体缺少必需的字段(如"name"或"email"),Lambda函数将返回一个包含错误消息的400响应。否则,Lambda函数将返回一个成功的200响应。
请注意,这只是一个简单的示例,您可以根据您的需求进行修改和扩展。