Saas-Base / core /middleware /request_id.py
rsnarsna
fourth commit
63a63e2
Raw
History Blame Contribute Delete
739 Bytes
"""
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