- FastAPI教程
- FastAPI - 主页
- FastAPI - 简介
- FastAPI - 你好世界
- FastAPI-开放API
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - 休息架构
- 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 - Websocket
- FastAPI - FastAPI 事件处理程序
- FastAPI - 安装子应用程序
- FastAPI - 中间件
- FastAPI - 安装 Flask 应用程序
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用的资源
- FastAPI - 讨论
FastAPI - 中间件
中间件是一个对每个请求(在由任何特定路径操作处理之前)以及每个响应返回之前进行处理的函数。该函数接受您的应用程序收到的每个请求。它可以通过运行其中定义的代码来对请求执行某些处理,然后将请求传递给相应的操作函数来处理。它还可以在返回操作函数生成的响应之前对其进行处理。
以下是 FastAPI 库中可用的一些中间件 -
CORS中间件
HTTPS重定向中间件
可信主机中间件
GZip中间件
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}
当应用程序运行时,对于浏览器发出的每个请求,中间件输出(中间件工作!)将出现在控制台日志中的响应输出之前。