aws网关是构建API的强大工具,可扩展满足现代网络和移动应用程序的需求。借助AWS网关,您可以创建RESTFUL API,以将您的数据和业务逻辑揭示到可以构建可消耗API的丰富,交互式应用程序的开发人员。
REST API是构建可扩展的,分布式Web应用程序的行业标准。使用AWS网关,您可以轻松构建支持GET和POST方法的REST API以及复杂的查询参数。您还可以添加对其他HTTP方法的支持,例如put,delete和head。
使用AWS网关,您可以快速创建安全且坚固的API。您也可以使用它以最小的努力将代码部署到生产环境中。此外,AWS网关允许与其他AWS服务(例如S3和DynamoDB)无缝集成,使您可以轻松地在API中添加复杂的功能。
先决条件
在使用AWS网关构建静止的API之前,您应该拥有以下内容:
- Create an AWS account如果您还没有一个。
- 登录到AWS管理控制台并导航到Amazon API网关服务。
- 单击创建API,然后选择REST API。
- 单击“操作”并定义资源,然后单击“创建资源”。
- 选择新创建的资源,然后单击创建方法。
-
选择http动词(例如获取,发布,放置等),然后单击检查标记以创建方法。
-
在“集成类型”部分中,选择“ lambda函数”,然后输入要使用API请求的lambda函数的名称。
-
单击“保存”以创建API。
- 从运行时下拉下选择节点。
代码示例
是导入JSON
示例数据
data = {
“项目”:[
{“ id”:1,“ name”:“ item 1”,“ Price”:10.99},
{“ id”:2,“ name”:“ item 2”,“ Price”:15.99},
{“ ID”:3,“名称”:“项目3”,“ PRISE”:20.99},
]
}
def lambda_handler(事件,上下文):
#确定请求的HTTP方法
http_method = event [“ httpmethod”]
#处理获取请求
如果http_method ==“ get”:
#返回响应中的数据
响应= {
“状态密码”:200,
“正文”:json.dumps(数据)
}
返回响应
# 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请求(获取,发布,put,删除)。数据是包含项目数组的对象,每个项目都有一个ID,名称和价格。
调用函数时,它首先从事件对象确定请求的HTTP方法。然后它相应地处理请求:
- 获取:以200。 的状态代码返回响应中的数据。
- 帖子:检索请求的身体并将其解析为JSON,然后将接收到的数据添加到示例数据中,然后以200。 的状态代码返回响应中的更新数据。
- put:检索请求的身体并将其解析为JSON,然后使用接收到的数据更新示例数据,然后以200。 的状态代码返回响应中的更新数据。
- 删除:检索请求的正文并将其解析为JSON,然后在示例数据中找到带有指定ID的项目,然后将其删除,然后以200。 /li>
- 如果不支持该方法,它将以405的状态代码返回错误消息。
通过单击操作并选择部署API。
部署API。选择一个部署阶段(例如,测试或测试),然后单击部署。使用生成的API端点向您的API提出请求。
在Postman中运行和测试代码
现在,我们的API正在运行。您可以通过Postman发送测试HTTP请求。通过向您的调用URL发送请求,您应该看到200个状态代码。对于此测试,即将到来的请求不需要任何请求主体。
包起来
这样,我们使用AWS Lambda和Python创建了一个简单的静态API。该代码可以作为为您的应用程序创建更复杂的API的基础。当您继续开发API时,您可能需要考虑实施安全措施,例如API密钥,与API网关,monitoring the usage of the API集成或通过API monetization产生收入。如果您有兴趣探索API分析和获利的选项,请查看Moesif。