欢迎访问宙启技术站
智能推送

快速学习并使用FastAPI构建PythonAPI

发布时间:2023-12-11 10:58:15

FastAPI 是一个基于 Python 的高性能 Web 框架,可以用于快速构建和部署 API。它提供了相对简洁的语法和文档自动生成功能,使得构建 API 变得更加高效。在本文中,我们将介绍如何快速学习并使用 FastAPI 来构建 Python API,并提供一些使用示例。

步是安装 FastAPI。可以使用 pip 包管理器来安装 FastAPI:

$ pip install fastapi

同时,还需要安装一个用于运行 API 的 ASGI 服务器,比如 Uvicorn:

$ pip install uvicorn

安装完成后,我们就可以开始构建我们的 API 了。

首先,创建一个新的 Python 文件,比如 main.py。在文件中引入 FastAPI,创建一个实例:

from fastapi import FastAPI

app = FastAPI()

接下来,我们可以定义一些路由和相关函数来处理 API 的不同端点。

例如,我们可以定义一个用于处理根路径的端点,返回一个简单的欢迎信息。我们使用 app 实例的 @app.get 装饰器来定义一个 GET 请求的端点,并使用 async 关键字定义异步函数:

@app.get("/")
async def root():
    return {"message": "Welcome to my API!"}

在上面的例子中,当我们访问根路径时,将会调用 root() 函数,并返回一个 JSON 格式的响应。

我们还可以定义接受参数的端点。例如,我们可以定义一个接收路径参数的端点,返回一个包含参数值的响应。我们使用大括号 {} 来表示路径参数,并在函数中通过参数名称来获取参数值:

@app.get("/user/{name}")
async def get_user(name: str):
    return {"message": f"Hello, {name}!"}

在上面的例子中,当我们访问 /user/{name} 路径时,将会调用 get_user() 函数,并返回一个包含参数值的欢迎消息。

另外,我们还可以定义接受请求体的端点。例如,我们可以定义一个接受 JSON 请求体的端点,将请求体中的数据转换为 Python 对象,并进行处理:

@app.post("/user")
async def create_user(user: User):
    return {"message": f"User created: {user.name}"}

在上面的例子中,User 是一个自定义的 Python 类,用于定义用户对象的结构。FastAPI 会自动将请求体中的 JSON 数据转换为 User 类型的对象,并将其作为参数传递给 create_user() 函数。

最后,我们需要启动 API 服务器。在 main.py 文件的底部,添加以下代码:

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

以上代码将启动一个基于 Uvicorn 的服务器,并监听主机地址为 0.0.0.0、端口为 8000 的请求。

通过运行以下命令来启动 API 服务器:

$ uvicorn main:app --reload

以上命令将会通过 Uvicorn 运行 main.py 文件,并且在代码发生变化时自动重启服务器。

现在,我们的 API 已经可以运行了。可以在浏览器或者通过 cURL 命令来测试 API 的不同端点。

例如,访问 http://localhost:8000/,将会返回一个包含欢迎消息的 JSON 响应。

发送一个 JSON 请求体到 http://localhost:8000/user 端点,将会返回一个包含已创建用户信息的 JSON 响应。

以上就是关于快速学习并使用 FastAPI 构建 Python API 的基本介绍和示例。希望这篇文章能够帮助你快速上手并使用 FastAPI 来构建高性能的 Python API。