Код IT
← Каталог

Практикум REST и WebSocket — OrderDesk — Middleware `X-Request-Id`

Фрагмент из «Практикум REST и WebSocket — OrderDesk»: Middleware `X-Request-Id`.

python infra-securityencyclopedia8-08-praktikum-rest-i-websocket-4 embed URL статья в энциклопедии
Python main.py

import uuid

from starlette.middleware.base import BaseHTTPMiddleware

class RequestIdMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request, call_next):
        rid = request.headers.get("x-request-id") or str(uuid.uuid4())
        request.state.request_id = rid
        response = await call_next(request)
        response.headers["X-Request-Id"] = rid
        return response

app.add_middleware(RequestIdMiddleware)

import uuid

from starlette.middleware.base import BaseHTTPMiddleware

class RequestIdMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request, call_next):
        rid = request.headers.get("x-request-id") or str(uuid.uuid4())
        request.state.request_id = rid
        response = await call_next(request)
        response.headers["X-Request-Id"] = rid
        return response

app.add_middleware(RequestIdMiddleware)