Я создаю промежуточное программное обеспечение для регистрации вызовов функций, среди прочего.
Я читал о
FastAPI: Как получить необработанный URL-путь из запроса?, в котором предлагается использовать request.scope.get("route"), который работает при использовании в функции конечной точки. Однако в промежуточном программном обеспечении request.scope не имеет атрибута «маршрут». Я не уверен, что такое область действия и почему она меняется в промежуточном программном обеспечении, но как мне это обойти?
@app.get("/success/{id}", status_code=201)
def success():
return
app.add_middleware(RequestInfo)
from starlette.middleware.base import BaseHTTPMiddleware
from fastapi import Request
class RequestInfo(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
logger.info("Hello")
# Doing some things
Подробнее здесь: https://stackoverflow.com/questions/787 ... middleware