Sha256: 3fd69a9630071329d289f761b2be37ced69897c843234f4d2aa07d06cb91186b
Contents?: true
Size: 549 Bytes
Versions: 3
Compression:
Stored size: 549 Bytes
Contents
# frozen_string_literal: true require 'request_store' require 'svcbase/random' module Core # Add per-request tracking class RequestId def initialize(app) @app = app end def call(env) # RequestStore gem allows us to not muck with thread local storage directly RequestStore.store[:http_request_id] = env['HTTP_X_REQUEST_ID'] || Core::Random.short_id status, headers, body = @app.call(env) headers['X-Request-Id'] ||= RequestStore.store[:http_request_id] [status, headers, body] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
svcbase-0.1.18 | lib/svcbase/middleware/requestid.rb |
svcbase-0.1.17 | lib/svcbase/middleware/requestid.rb |
svcbase-0.1.16 | lib/svcbase/middleware/requestid.rb |