在AWS API Gateway中,资源和路径可以通过使用Lambda函数和配置API Gateway的集成来进行分离。下面是一个示例:
import json
def lambda_handler(event, context):
resource = event['resource']
method = event['httpMethod']
if resource == '/users':
if method == 'GET':
return get_users()
elif method == 'POST':
return create_user(event)
elif resource == '/users/{id}':
if method == 'GET':
return get_user(event)
elif method == 'PUT':
return update_user(event)
elif method == 'DELETE':
return delete_user(event)
return {
'statusCode': 404,
'body': 'Resource not found'
}
def get_users():
# 获取所有用户的逻辑
return {
'statusCode': 200,
'body': 'Get all users'
}
def create_user(event):
# 创建用户的逻辑
body = json.loads(event['body'])
# ...
return {
'statusCode': 200,
'body': 'User created'
}
def get_user(event):
# 获取单个用户的逻辑
user_id = event['pathParameters']['id']
# ...
return {
'statusCode': 200,
'body': f'Get user {user_id}'
}
def update_user(event):
# 更新用户的逻辑
user_id = event['pathParameters']['id']
body = json.loads(event['body'])
# ...
return {
'statusCode': 200,
'body': f'Update user {user_id}'
}
def delete_user(event):
# 删除用户的逻辑
user_id = event['pathParameters']['id']
# ...
return {
'statusCode': 200,
'body': f'Delete user {user_id}'
}
在AWS控制台上创建API Gateway。
/users,并为该资源添加GET和POST方法。/users/{id},并为该资源添加GET、PUT和DELETE方法。配置请求和响应模型(可选)。
部署API。
现在,API Gateway中的资源和路径已经分离,并且每个资源和路径都与相应的Lambda函数集成。您可以使用AWS API Gateway的终端节点URL来调用这些资源和路径,例如:
https://api-gateway-url/usershttps://api-gateway-url/usershttps://api-gateway-url/users/{id}https://api-gateway-url/users/{id}https://api-gateway-url/users/{id}请根据您的需求和Lambda函数的实际逻辑进行相应的修改和扩展。