- FastAPI 教程
- FastAPI - 首页
- FastAPI - 简介
- FastAPI - Hello World
- FastAPI - OpenAPI
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - REST 架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求体
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML 表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - 头部参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - WebSockets
- FastAPI - FastAPI 事件处理器
- FastAPI - 挂载子应用
- FastAPI - 中间件
- FastAPI - 挂载 Flask 应用
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用资源
- FastAPI - 讨论
FastAPI - 中间件
中间件是一个函数,它会在每个请求处理之前(在任何特定路径操作处理之前)以及在返回每个响应之前进行处理。此函数接收进入应用程序的每个请求。它可以通过运行其中定义的代码对请求执行某些过程,然后将请求传递给相应的操作函数进行处理。它还可以处理操作函数生成的响应,然后再返回该响应。
以下是 FastAPI 库中提供的一些中间件:
CORSMiddleware
HTTPSRedirectMiddleware
TrustedHostMiddleware
GZipMiddleware
FastAPI 提供了app.add_middleware() 函数来处理服务器错误和自定义异常处理器。除了上述集成的中间件之外,还可以定义自定义中间件。以下示例定义了addmiddleware() 函数,并通过使用@app.middleware() 装饰器将其装饰为中间件。
该函数有两个参数:HTTP 请求对象和call_next() 函数,该函数会将 API 请求发送到其对应的路径并返回响应。
除了中间件函数之外,应用程序还有两个操作函数。
import time from fastapi import FastAPI, Request app = FastAPI() @app.middleware("http") async def addmiddleware(request: Request, call_next): print("Middleware works!") response = await call_next(request) return response @app.get("/") async def index(): return {"message":"Hello World"} @app.get("/{name}") async def hello(name:str): return {"message":"Hello "+name}
当应用程序运行时,对于浏览器发出的每个请求,中间件输出(Middleware works!)将出现在控制台日志中,然后再出现响应输出。
广告