所有文章 > 如何集成API > 使用 AWS Gateway 和 Python 构建 REST API

使用 AWS Gateway 和 Python 构建 REST API

AWS Gateway 是一款功能强大的工具,可用于构建可扩展的 API,以满足现代 Web 和移动应用程序的需求。借助 AWS Gateway,您可以创建 RESTful API,向开发人员公开您的数据和业务逻辑,然后开发人员可以构建使用您的 API 的丰富交互式应用程序。

REST API 是构建可扩展分布式 Web 应用程序的行业标准。借助 AWS Gateway,您可以轻松构建支持 GET 和 POST 方法以及复杂查询参数的 REST API。您还可以添加对其他 HTTP 方法(例如 PUT、DELETE 和 HEAD)的支持。

使用 AWS Gateway,您可以快速创建安全且强大的 API。您还可以使用它以最少的努力将代码部署到生产环境。此外,AWS Gateway 允许与其他 AWS 服务(例如 S3 和 DynamoDB)无缝集成,使您能够轻松地向 API 添加复杂的功能。

先决条件

在使用 AWS Gateway 构建 RESTful API 之前,您应该做好以下准备:

  • 创建 AWS 账户如果你还没有的话。
  • 登录 AWS 管理控制台并导航到 Amazon API Gateway 服务。
AWS 网关
  • 点击“创建 API”并选择“REST API”。
创建 API
创建 API
  • 点击“操作”并定义资源,然后点击“创建资源”。
创建资源
  • 选择新创建的资源,然后点击“创建方法”。
创建资源
创建资源
  • 选择 HTTP 动词(例如 GET、POST、PUT 等),然后单击复选标记以创建方法。
  • 在“集成类型”部分中,选择“Lambda 函数”并输入您想要用于处理 API 请求的 Lambda 函数的名称。
  • 单击“保存”以创建 API。
创建资源
  • 从运行时下拉菜单中选择节点。
创建资源

代码示例

import json
# Example data

data = {
"items": [
{"id": 1, "name": "Item 1", "price": 10.99},
{"id": 2, "name": "Item 2", "price": 15.99},
{"id": 3, "name": "Item 3", "price": 20.99},
]
}

def lambda_handler(event, context):
# Determine the HTTP method of the request
http_method = event["httpMethod"]
# Handle GET request
if http_method == "GET":
# Return the data in the response
response = {
"statusCode": 200,
"body": json.dumps(data)
}
return response

# Handle POST request
elif http_method == "POST":
# Retrieve the request's body and parse it as JSON
body = json.loads(event["body"])
# Add the received data to the example data
data["items"].append(body)
# Return the updated data in the response
response = {
"statusCode": 200,
"body": json.dumps(data)
}
return response

# Handle PUT request
elif http_method == "PUT":
# Retrieve the request's body and parse it as JSON
body = json.loads(event["body"])
# Update the example data with the received data
for item in data["items"]:
if item["id"] == body["id"]:
item.update(body)
break
# Return the updated data in the response
response = {
"statusCode": 200,
"body": json.dumps(data)
}
return response

# Handle DELETE request
elif http_method == "DELETE":
# Retrieve the request's body and parse it as JSON
body = json.loads(event["body"])
# Find the item with the specified id in the example data
for i, item in enumerate(data["items"]):
if item["id"] == body["id"]:
# Remove the item from the example data
del data["items"][i]
break
# Return the updated data in the response
response = {
"statusCode": 200,
"body": json.dumps(data)
}
return response

else:
# Return an error message for unsupported methods
response = {
"statusCode": 405,
"body": json.dumps({"error": "Method not allowed"})
}
return response

此代码定义了一个 Lambda 函数,lambda_handler用于处理针对某些数据的不同类型的 HTTP 请求(GETPOSTPUTDELETE)。数据是一个包含项目数组的对象,每个项目都有一个 ID、名称和价格。

当调用该函数时,它首先从事件对象中确定请求的 HTTP 方法。然后它相应地处理请求:

  • GET:以状态码200返回响应中的数据。
  • POST:检索请求的主体并将其解析为 JSON,然后将接收到的数据添加到示例数据中,然后在响应中以状态代码 200 返回更新的数据。
  • PUT:检索请求的主体并将其解析为 JSON,然后使用收到的数据更新示例数据,然后在响应中返回更新后的数据,状态代码为 200。
  • DELETE:检索请求的主体并将其解析为 JSON,然后在示例数据中找到具有指定 id 的项目并将其删除,然后在响应中返回更新后的数据,状态代码为 200。
  • 如果该方法不受支持,则返回状态码为405的错误消息。

通过单击“操作”并选择“部署 API”来部署 API。

Postman 测试

选择部署阶段(例如“prod”或“test”)并点击“Deploy”。使用生成的 API 端点向您的 API 发出请求。

Postman 测试

在 Postman 中运行和测试代码

现在,我们的 API 已启动并运行。您可以通过 Postman 发送测试 HTTP 请求。通过向您的 发送请求invoke URL,您应该会看到200 OK状态代码。对于此测试,传入请求不需要请求正文。

Postman 测试

总结

这样,我们就使用 AWS Lambda 和 Python 创建了一个简单的 RESTful API。此代码可以作为为您的应用程序创建更复杂 API 的基础。在继续开发 API 时,您可能需要考虑实施安全措施,例如 API 密钥、与 API 网关集成,监控 API 的使用情况或通过以下方式创造收入API 货币化。

原文地址:https://www.moesif.com/blog/technical/api-development/Building-Rest-API-With-AWS-Gateway-And-Python/

#你可能也喜欢这些API文章!