FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,由 Python 3.6+ 支持。它旨在快速开发,同时提供生产就绪的 API。FastAPI 使用 Python 标准库中的类型提示,这意味着它可以与 Pydantic 和 Starlette 等库无缝集成。以下是关于如何使用 FastAPI 轻松实现高效 REST API 构建的详细攻略。

快速入门

安装 FastAPI

首先,确保你的 Python 环境已经设置好。然后,通过以下命令安装 FastAPI:

pip install fastapi uvicorn 

创建基础项目

创建一个新的目录,并使用以下命令初始化一个基础 FastAPI 项目:

python -m venv venv source venv/bin/activate # 在 Windows 上使用 venvScriptsactivate pip install fastapi uvicorn 

接下来,创建一个名为 main.py 的文件,并添加以下代码:

from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 

运行应用

现在,你可以使用以下命令启动你的 FastAPI 应用:

uvicorn main:app --reload 

访问 http://127.0.0.1:8000/,你应该会看到一个响应为 {"message": "Hello World"} 的页面。

高效构建 REST API

路径操作

FastAPI 支持使用 Python 装饰器来定义路由。以下是一些基本示例:

获取数据

@app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id} 

创建数据

from pydantic import BaseModel class Item(BaseModel): name: str description: str = None price: float tax: float = None @app.post("/items/") async def create_item(item: Item): return item 

数据验证

FastAPI 使用 Pydantic 进行数据验证。这意味着你可以定义一个 Pydantic 模型来描述你的数据结构,并确保客户端发送的数据符合这些结构。

使用 Pydantic 模型

@app.post("/items/") async def create_item(item: Item): return item 

异步处理

FastAPI 是异步的,这意味着你可以使用 asyncawait 关键字来编写异步代码。

异步函数

@app.get("/items/{item_id}") async def read_item(item_id: int): # 模拟异步操作 await asyncio.sleep(1) return {"item_id": item_id} 

错误处理

FastAPI 允许你使用异常处理来捕获和处理错误。

定义异常处理器

from fastapi import HTTPException @app.exception_handler(HTTPException) async def custom_http_exception_handler(request, exc): return JSONResponse( status_code=exc.status_code, content={"message": exc.detail}, ) 

中间件

中间件允许你在请求处理之前和之后执行一些操作。

使用中间件

@app.middleware("http") async def log_requests(request, call_next): print(f"Received {request.method} request for {request.url}") response = await call_next(request) print(f"Request {request.method} {request.url} responded with status {response.status_code}") return response 

总结

FastAPI 是一个功能强大且易于使用的 Web 框架,可以帮助你快速构建高效的 REST API。通过使用 FastAPI,你可以利用 Python 的类型提示和异步功能,以及 Pydantic 和 Starlette 等库,来创建出既安全又可维护的 API。

在本文中,我们简要介绍了 FastAPI 的安装、基础用法、数据验证、异步处理、错误处理和中间件。通过这些知识,你可以开始构建自己的 REST API,并享受到 FastAPI 带来的便利。