класс ActionDispatch::RequestId
Обеспечивает уникальный идентификатор запроса, доступный в переменной окружения action_dispatch.request_id (который затем можно получить через ActionDispatch::Request#uuid или псевдоним ActionDispatch::Request#request_id) и отправляет тот же идентификатор клиенту через заголовок X-Request-Id.
Уникальный идентификатор запроса основан либо на заголовке X-Request-Id в запросе, который обычно генерируется брандмауэром, балансировщиком нагрузки или веб-сервером, либо, если этот заголовок недоступен, на случайном uuid. Если заголовок принимается из внешнего мира, он очищается, ограничиваясь максимальной длиной 255 символов и содержанием только буквенно-цифровых символов и дефисов.
Уникальный идентификатор запроса может использоваться для отслеживания запроса от начала до конца и обычно включается в файлы журналов нескольких компонентов стека.
Публичные методы класса
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 17 def initialize(app) @app = app end
Публичные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 21
def call(env)
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.