为了打印出详细的请求参数和返回的响应,你可以使用FastAPI的中间件。以下是如何实现这一目标的示例:
- 添加中间件以捕获请求和响应:
from fastapi import FastAPI, Request
import logging
app = FastAPI()
# 设置日志配置
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@app.middleware("http")
async def log_request_response(request: Request, call_next):
# 记录请求信息
body = await request.body()
logger.info(f"Request: {
request.method} {
request.url} - Body: {
body.decode('utf-8')}")
response = await call_next(request)
# 记录响应信息
response_body