FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,由 Python 3.6+ 支持。它具有异步功能,这意味着它可以同时处理多个请求,而不需要为每个请求启动新的线程。以下是使用 FastAPI 构建高效 API 的详细教程。
环境准备
在开始之前,请确保您已经安装了 Python 3.6 或更高版本。然后,使用以下命令安装 FastAPI 和 Uvicorn(一个 ASGI 服务器):
pip install fastapi uvicorn
创建项目结构
创建一个新目录,用于存放您的项目文件。然后,在该目录中创建以下文件:
main.py:这是您的 FastAPI 应用程序的主要文件。models.py:用于定义数据模型。routers.py:用于定义路由和依赖注入。
编写 FastAPI 应用程序
1. 导入必要的库
在 main.py 中,首先导入必要的库:
from fastapi import FastAPI
2. 创建 FastAPI 实例
创建一个 FastAPI 实例:
app = FastAPI()
3. 定义路由和视图函数
定义一个路由和视图函数,用于处理 HTTP 请求:
@app.get("/")
async def read_root():
return {"Hello": "World"}
这个视图函数将响应所有 GET 请求到根路径(/),并返回一个包含 “Hello” 和 “World” 的 JSON 对象。
4. 定义数据模型
在 models.py 中,定义数据模型:
from pydantic import BaseModel
class Item(BaseModel):
id: int
name: str
description: str = None
price: float
tax: float = None
这个模型定义了一个名为 Item 的数据结构,它包含 id、name、description、price 和 tax 属性。
5. 使用 Pydantic 模型验证
在视图函数中,使用 Pydantic 模型验证请求参数:
from fastapi import HTTPException
@app.post("/items/")
async def create_item(item: Item):
if item.price <= 0:
raise HTTPException(status_code=400, detail="Price must be greater than 0")
return item
这个视图函数将响应所有 POST 请求到 /items/ 路径,并创建一个新的 Item 对象。
运行 FastAPI 应用程序
使用以下命令运行 FastAPI 应用程序:
uvicorn main:app --reload
这将启动一个开发服务器,并在 http://127.0.0.1:8000 上提供您的 API。
总结
使用 FastAPI 构建高效 API 是一件非常简单的事情。通过遵循上述步骤,您可以快速创建一个功能强大的 API,并利用其异步功能提高性能。希望这个教程对您有所帮助!
