Добавление URL-адресов API-ключей в переменную окружения в ruby - PullRequest
1 голос
/ 14 октября 2011

У меня есть URL, который я использую в одном из контроллеров. Есть ли лучшее место для размещения этого URL? URL использует ключ API, и мне было интересно, есть ли лучшее место для добавления этого URL и / или API-ключа, чтобы он не добавлялся в код класса контроллера и, следовательно, был более редактируемым? Если я добавлю его как переменную окружения или что-то еще, как мне получить к нему доступ из класса моего контроллера? благодарю вас. ЕГО РУБИНОВЫЙ И ЖЕЛЕЗНОДОРОЖНЫЙ ПРОЕКТ

Ответы [ 2 ]

5 голосов
/ 14 октября 2011

Использование переменных среды может быть хорошей идеей, если вы хотите, чтобы такие вещи, как ключи API и пароли, не попадали в ваш исходный код. Доступ к ним из вашего кода осуществляется с помощью объекта ENV:

my_api_key = ENV['MY_API_KEY']

Чтобы использовать эту технику, вам нужно настроить переменные в своей среде перед запуском приложения, и то, как вы это сделаете, зависит от вашей локальной настройки и, вероятно, также будет зависеть от разработки и производства.

В процессе разработки вы можете просто установить переменные среды в вашей оболочке, например, с баш:

$ export MY_API_KEY=foobar123abc
$ rails s

Теперь рельсы запустятся и получат доступ к этой переменной среды. Вы также можете установить переменные только для одной команды:

$ MY_API_KEY=foobar123abc rails s

В зависимости от того, что такое sevice / api, вы можете установить для некоторых из них значения разработки / тестирования по умолчанию в config/environments/development.rb (или test.rb):

ENV['MY_API_KEY'] = 'non_secret_api_key_that_can_be_shared_around'

Настройка переменных среды в рабочей среде будет зависеть от того, как вы развертываете свое приложение. У Phusion есть статья об использовании переменных среды в Passenger , если вы используете это. Также есть полезная статья об использовании переменных среды с Heroku , которую стоит прочитать, даже если вы не используете их для развертывания.

1 голос
/ 14 октября 2011

Вы можете добавить его в файл application.rb как

config.service {
   :api_key => 'api_key'
}

Или, что еще лучше, добавить его в файлы development.rb и production.rb, чтобы лучше его протестировать.

Вы можете получить доступ к этому api_key из контроллера, как

Rails.application.config.service[:api_key]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...