presentation.routers.api.middleware.trace_middleware¶
src.presentation.routers.api.middleware.trace_middleware
¶
Trace middleware to inject a trace_id per request.
- Adds X-Trace-Id response header
- Exposes get_trace_id() helper for logging calls outside request handlers
Classes¶
TraceMiddleware
¶
Bases: BaseHTTPMiddleware
Starlette middleware that injects a trace ID into each request context.
Source code in src/presentation/routers/api/middleware/trace_middleware.py
Functions¶
dispatch
async
¶
Intercept a request to set and propagate a trace ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
Incoming request. |
required |
call_next
|
Callable[[Request], Awaitable[Response]]
|
Next handler. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Response |
Response
|
Response with X-Trace-Id header added. |
Source code in src/presentation/routers/api/middleware/trace_middleware.py
Functions¶
get_trace_id
¶
Return the current trace ID.
Returns None when called outside of request context. Use this in logging calls to automatically include trace_id.
Returns:
| Type | Description |
|---|---|
str | None
|
str | None: The current request trace ID, or None if no active request. |