我已经有一段时间没有机会构建一些简单、有趣和现代的东西了。到 2024 年年底,我偶然发现了 FastAPI,并感到很兴奋,虽然我之前在工作中构建过内部 API,但尚未创建任何面向公众的内容。
你好 FastAPI!
FastAPI 是一个现代、强大的框架,用于使用 Python 构建 API,它似乎非常适合我想要构建的内容,即用于基本足球运动员信息的 API。在决定使用“Player FC API”之前,我最初将其称为“Jugador FC”。
开始之前,请确保满足以下要求:
AWS CDK
码头工人
Python 3.12.7
在您的计算机上创建一个目录。将其命名为 player_fc_fastapi_app,在此目录中创建以下子目录:
应用程序
包含所有FastAPI代码
dynamo_db_local
包含一个 python 脚本,用于创建 Amazon DynamoDB 表的本地版本
iac
包含用于在 AWS 中创建资源的堆栈文件
我通过提供您可以运行的命令来简化以下操作以节省时间:
项目目录结构现在应如下所示:
设置Python环境
设置 Amazon DynamoDB Local
。
dynamo_db_local 目录并创建一个 create_ddb_table.py 文件,使用以下代码填充该文件:
使用此代码,您可以在本地 DynamoDB 实例中创建一个表。运行代码片段。 FastAPI开发
现在我们已经启动并运行了
DynamoDB目录并创建两个文件:main.py 和requirements。 txt.
使用以下内容填充requirements.txt:
创建以下子目录:
让我们使用 Pydantic 创建几个模型,我们将使用 Player 和 UpdatePlayer 模型来定义我们可以添加或修改的玩家信息的数据结构。
在 models 子目录中,创建一个空的 __init__.py 文件和一个名为players.py 的文件,并填充以下代码:
在routers
子目录中,创建一个空的__init__.py文件和一个名为players.py的文件,并填充以下代码:创建一个空的 __init__.py 文件会将文件夹变成 Python 包。
在
app试驾 是时候进行快速测试了,确保您位于 app
目录中并运行以下命令来启动
现在我们的应用程序已启动并运行,导航至
http://127.0.0.1:8000/docs/您将看到自动交互式 API 文档,其中有 6 个可用端点:
让我们尝试添加一个玩家。选择
POST /players按钮并使用以下有效负载添加世界上最好的玩家“Vinícius Júnior”:
以下是每个 API 操作的实际效果。
添加新玩家:
检索所有玩家:
更新玩家信息:
获取单人游戏详细信息:
删除玩家:
使用 AWS CDK v2 进行部署
现在我们已经可以在本地运行和测试我们的应用程序了,是时候在 AWS 上部署我们的应用程序了。我们将使用 AWS CDK v2。修改子目录中的requirements.txt文件,添加以下行:
让我们定义一个 DynamoDB 表、Lambda 函数和 Lambda 函数 url。在当前的 iac 目录中,您需要导航到另一个子目录 (iac
)。打开 iac_stack.py 文件,将 CDK 堆栈的内容替换为以下代码:在启动部署之前,我们还有最后一步,将 app/routers 目录下的players.py 文件中的 local_development: bool 标记设置为
False激活
使用 cdk 部署命令部署应用程序。
部署完成后,您将在终端输出中看到一个函数 URL,这是您在 AWS 上的 API 端点。
探索表格项目
您应该在云端看到您的玩家数据:
?
重要:不要忘记清理资源!当不再需要时,您可以运行 cdk destroy 命令删除所有创建的 AWS 资源。 <script></script>我们从本地 FastAPI 开发到 AWS 上的无服务器部署的旅程就结束了。<script></script> <script></script> <script></script>以上是无服务器 FastAPI 开发:在 AWS 上构建 Player FC API的详细内容。更多信息请关注PHP中文网其他相关文章!