Как используется middleware в FastAPI
Python
Middle
Без компании
Как используется middleware в FastAPI
Ответы
Middleware в FastAPI — это промежуточный слой, который обрабатывает запросы и ответы до/после их попадания в основной обработчик. Он позволяет выполнять общие задачи: логирование, аутентификацию, CORS и т.д.
Пример добавления middleware для логирования:
```
from fastapi import FastAPI, Request
import time
app = FastAPI()
@app.middleware("http")
async def log_requests(request: Request, call_next):
start_time = time.time()
response = await call_next(request)
process_time = time.time() - start_time
print(f"Request: {request.method} {request.url} took {process_time:.2f}s")
return response
```
Ключевые моменты:
- Middleware регистрируется через декоратор `@app.middleware("http")`
- Принимает `request` и функцию `call_next` (передает управление следующему middleware/обработчику)
- Можно модифицировать запрос/ответ или добавлять заголовки
- Встроенные middleware (например, для CORS) подключаются через `app.add_middleware()`
Пример CORS:
```
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"]
)
```