""" Request ID middleware — attaches a unique request ID for tracing. Adds `request.request_id` and sets the `X-Request-ID` response header. """ import uuid class RequestIDMiddleware: """ Attach a unique request ID to every request for observability and tracing. If the client sends an `X-Request-ID` header, it is reused. Otherwise, a new UUID4 is generated. """ def __init__(self, get_response): self.get_response = get_response def __call__(self, request): request_id = request.headers.get("X-Request-ID") or str(uuid.uuid4()) request.request_id = request_id response = self.get_response(request) response["X-Request-ID"] = request_id return response