· 约 2 分钟

15-FastAPI进阶-中间件

  • FastAPI
  • Python

学习目标

核心概念

代码示例

import time
import uuid

from fastapi import FastAPI, Request

app = FastAPI()


@app.middleware("http")
async def add_request_info(request: Request, call_next):
    request_id = str(uuid.uuid4())
    start_time = time.perf_counter()

    response = await call_next(request)

    process_time = time.perf_counter() - start_time
    response.headers["X-Request-ID"] = request_id
    response.headers["X-Process-Time"] = f"{process_time:.4f}"
    return response


@app.get("/ping")
def ping():
    return {"message": "pong"}

案例理解

易错点

我的补充