То, что я пытаюсь сделать, довольно просто. Существует несколько версий Rails API Rails. Таким образом, есть маршруты, такие как:Rails - добавление пользовательских заголовков в ответ на основе версии API
http://www.example.com/v1/user.json
http://www.example.com/v2/user.json
http://www.example.com/v3/user.json
То, что я хочу сделать, это добавить заголовки НТТРА в ответ на основе API версии конечной точке, которая запрашивается.
В моей конфигурации/application.rb файл, я попробовал:
config.action_dispatch.default_headers.merge!('my_header_1' => 'my_value_1', 'my_header_2' => 'my_value_2')
Я также попытался это в моей конфигурации/routes.rb файла:
scope path: "v1", controller: :test do
get "action_1" => :action_1
get "action_2" => :action_2
Rails.application.config.action_dispatch.default_headers.merge!('my_header_1' => 'my_value_1', 'my_header_2' => 'my_value_2')
end
Но оба этих фрагментах добавить пользовательские заголовки для ответа независимо от конечной точки версии API.
Я думаю, что могу написать промежуточное программное обеспечение, которое проверяет URL-адрес запроса и добавляет заголовки ответов на основе этого, но это звучит немного хакерским.
Есть ли лучший способ достичь этого? Предпочтительно через конфигурацию или некоторую центральную часть кода?