Как добавить промежуточное ПО перед запуском приложения в FastAPI?Python

Программы на Python
Anonymous
Как добавить промежуточное ПО перед запуском приложения в FastAPI?

Сообщение Anonymous »

Используя события Lifespan и промежуточное ПО, я хотел бы добавить промежуточное ПО внутри asynccontextmanager. Это должно выглядеть примерно так:

Код: Выделить всё

@asynccontextmanager
async def lifespan(app: FastAPI):
if some_condition:
@app.middleware("http")
async def my_middleware(request: Request, call_next):
response = await call_next(request)
return response
yield
pass

app = FastAPI(lifespan=lifespan)
Однако в приведенном выше примере возникает следующая ошибка:

Код: Выделить всё

RuntimeError: Cannot add middleware after an application has started
Но в начале документации Lifespan Events упоминается, что:

Вы можете определить логику (код ), который должен быть выполнен перед запуском
приложения
. Это означает, что этот код будет выполнен
один раз, до того, как приложение начнет получать запросы.

Как мне следует это сделать? подойти к этому?

Подробнее здесь: https://stackoverflow.com/questions/782 ... in-fastapi

Вернуться в «Python»