Spec-Zone.ru › Ruby on Rails 8.1

класс ActionDispatch::RequestId

Родительский класс:
Object

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