Spec-Zone.ru › Ruby on Rails 8.0

класс ActionDispatch::RequestId

Родитель:
Объект

Action Dispatch RequestId

Обеспечивает уникальный идентификатор запроса, доступный в переменной среды action_dispatch.request_id (который затем можно получить через ActionDispatch::Request#request_id или псевдоним ActionDispatch::Request#uuid) и отправляет тот же идентификатор клиенту через заголовок X-Request-Id.

Уникальный идентификатор запроса основан на заголовке X-Request-Id в запросе, который обычно генерируется брандмауэром, балансировщиком нагрузки или веб-сервером, или, если этот заголовок недоступен, случайным uuid. Если заголовок принимается извне, он очищается до максимальной длины 255 символов и содержит только алфавитно-цифровые символы и дефисы.

Уникальный идентификатор запроса можно использовать для отслеживания запроса от начала до конца, и он обычно включается в файлы журналов с разных уровней стека.

Публичные Классовые Методы

new(app, header:) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 25
def initialize(app, header:)
  @app = app
  @header = header
  @env_header = "HTTP_#{header.upcase.tr("-", "_")}"
end

Публичные Экземплярные Методы

call(env) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 31
def call(env)
  req = ActionDispatch::Request.new env
  req.request_id = make_request_id(req.get_header(@env_header))
  @app.call(env).tap { |_status, headers, _body| headers[@header] = req.request_id }
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API