Action Dispatch RequestId
讓 action_dispatch.request_id
env 變數(然後可透過 ActionDispatch::Request#request_id
或別名 ActionDispatch::Request#uuid
存取)取得唯一的請求 ID,並透過 X-Request-Id
標頭將相同的 ID 傳送給客戶端。
唯一的請求 ID 可能是基於請求中的 X-Request-Id
標頭(通常由防火牆、負載平衡器或網路伺服器產生),或者,如果這個標頭不可用,則為隨機的 uuid。如果從外部世界接受標頭,我們會將其清除為最多 255 個字元,且僅限於字母數字和破折號。
唯一的請求 ID 可用於追蹤請求的始末,通常會成為堆疊中多個部分的記錄檔的一部分。
方法
類別公開方法
new(app, header:) 連結
來源:顯示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 20 def initialize(app, header:) @app = app @header = header end
執行個體公開方法
call(env) 連結
來源:顯示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 25 def call(env) req = ActionDispatch::Request.new env req.request_id = make_request_id(req.headers[@header]) @app.call(env).tap { |_status, headers, _body| headers[@header] = req.request_id } end