requestIdMiddleware function

Middleware requestIdMiddleware()

Creates request ID middleware for tracing.

Implementation

Middleware requestIdMiddleware() {
  return (Handler handler) {
    return (Request request) async {
      final requestId = _generateRequestId();
      final updatedRequest = request.change(
        context: {'request_id': requestId},
      );

      final response = await handler(updatedRequest);
      return response.change(headers: {
        ...response.headers,
        'X-Request-ID': requestId,
      });
    };
  };
}