FastAPI 教程:十分钟上手开发 API – wiki词典

FastAPI 教程:十分钟上手开发 API

FastAPI 是一个现代、快速(高性能)的 Python Web 框架,专为使用 Python 3.7+ 构建 API 而设计。它基于标准的 Python 类型提示,以其卓越的速度、自动数据验证以及自动生成的交互式 API 文档而闻名,是开发高性能 API 的理想选择。

本教程将引导你快速入门 FastAPI,让你在十分钟内搭建并运行你的第一个 API。

准备工作

在开始之前,请确保你的系统满足以下条件:

  • Python 3.7+: FastAPI 需要 Python 3.7 或更高版本。
  • 基础 Python 知识: 对 Python 语法和概念有基本了解。

1. 安装 FastAPI 和 Uvicorn

首先,你需要安装 FastAPI 库和 Uvicorn ASGI 服务器。Uvicorn 是运行 FastAPI 应用程序的必要工具。

打开你的终端或命令行工具,执行以下命令:

bash
pip install fastapi uvicorn

  • fastapi: 这是 FastAPI 框架本身。
  • uvicorn: 这是一个超快的 ASGI 服务器,用于部署你的 FastAPI 应用。

2. 创建你的第一个 API

在你的项目目录下创建一个名为 main.py 的文件,并添加以下代码:

“`python
from fastapi import FastAPI

创建一个 FastAPI 应用实例

app = FastAPI()

定义一个处理根路径 (/) 的 GET 请求的函数

@app.get(“/”)
async def read_root():
return {“message”: “Hello, FastAPI!”}

定义一个处理带路径参数和可选查询参数的 GET 请求的函数

@app.get(“/items/{item_id}”)
async def read_item(item_id: int, q: str | None = None):
if q:
return {“item_id”: item_id, “q”: q}
return {“item_id”: item_id}
“`

代码解释:

  • from fastapi import FastAPI: 从 fastapi 库中导入 FastAPI 类。
  • app = FastAPI(): 创建一个 FastAPI 应用程序的实例,这是你所有 API 的入口点。
  • @app.get("/"): 这是一个装饰器,它告诉 FastAPI,紧随其后的函数将处理针对根 URL (/) 的 HTTP GET 请求。
  • async def read_root():: 定义一个异步函数,当收到 / 路径的请求时,它将被执行。FastAPI 支持异步操作,这对于处理高并发请求非常有用。
  • return {"message": "Hello, FastAPI!"}: 函数返回一个 Python 字典,FastAPI 会自动将其转换为 JSON 响应。
  • @app.get("/items/{item_id}"): 定义一个带有路径参数 item_id 的 GET 请求。{item_id} 表示 item_id 是 URL 的一部分。
  • async def read_item(item_id: int, q: str | None = None)::
    • item_id: int:声明 item_id 是一个整数,FastAPI 会自动进行数据类型验证。
    • q: str | None = None:声明 q 是一个可选的字符串查询参数,默认值为 None。如果 URL 中没有 q,它将是 None

3. 运行你的应用程序

现在,是时候启动你的 FastAPI 应用程序了。在 main.py 文件所在的目录下打开终端,执行以下命令:

bash
uvicorn main:app --reload

  • uvicorn: 调用 Uvicorn 服务器。
  • main:app: 指定 Uvicorn 应该在 main.py 文件中查找名为 app 的 FastAPI 实例。
  • --reload: 这个标志会在你修改代码时自动重新加载服务器,这在开发过程中非常方便。

执行命令后,你会在终端中看到类似以下内容的输出:

INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [*****]
INFO: Started server process [*****]
INFO: Waiting for application startup.
INFO: Application startup complete.

这表示你的 FastAPI 应用程序已成功运行在 http://127.0.0.1:8000

4. 测试你的 API

打开你的网页浏览器,访问以下 URL 来测试你的 API:

  • http://127.0.0.1:8000:
    你将看到 JSON 响应:{"message": "Hello, FastAPI!"}

  • http://127.0.0.1:8000/items/5:
    你将看到 JSON 响应:{"item_id": 5}

  • http://127.0.0.1:8000/items/5?q=somequery:
    你将看到 JSON 响应:{"item_id": 5, "q": "somequery"}

自动生成的 API 文档

FastAPI 最强大的功能之一是它会自动生成交互式 API 文档。你无需手动编写文档,FastAPI 会根据你的代码和类型提示自动为你创建。

  • Swagger UI (http://127.0.0.1:8000/docs):
    访问这个 URL,你将看到一个由 Swagger UI 提供的美观且功能丰富的交互式 API 文档页面。你可以在这里查看所有定义的 API 端点,并直接在浏览器中测试它们。

  • ReDoc (http://127.0.0.1:8000/redoc):
    访问这个 URL,你将看到另一个由 ReDoc 提供的 API 文档页面,它提供了不同的展示风格。

总结

恭喜你!在短短十分钟内,你已经成功地安装了 FastAPI,创建了你的第一个 API,并学会了如何运行和测试它。你还体验了 FastAPI 自动生成交互式 API 文档的强大功能。

FastAPI 的优势远不止于此,它还提供了数据模型验证、依赖注入、安全性、WebSockets 等诸多高级功能。现在,你已经掌握了基础,可以进一步探索 FastAPI 的官方文档,开启你的 API 开发之旅!

滚动至顶部