Junior — Middle
64
Каким образом реализуются посредники (middleware) в FastAPI и какую роль они выполняют в обработке запросов?
Компании, где спрашивали
Медси
Ответ от нейросети
sobes.tech AI
В FastAPI посредники (middleware) реализуются как классы или функции, которые оборачивают обработку HTTP-запросов и ответов, позволяя выполнять дополнительную логику до и после основного обработчика.
Middleware принимает объект запроса, может изменить его или выполнить какие-то действия (например, логирование, аутентификацию, обработку CORS), затем передает управление дальше по цепочке, и после получения ответа может его модифицировать.
Пример простого middleware в FastAPI:
from fastapi import FastAPI, Request
from starlette.middleware.base import BaseHTTPMiddleware
app = FastAPI()
class SimpleMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
print(f"Запрос: {request.method} {request.url}") # логируем запрос
response = await call_next(request) # передаем управление дальше
response.headers["X-Custom-Header"] = "Middleware"
return response
app.add_middleware(SimpleMiddleware)
Таким образом, middleware в FastAPI служат для внедрения общей логики, которая должна применяться ко всем или большинству запросов, без необходимости дублировать код в каждом обработчике.