Как я храню ключи для API в направляющих?

У меня есть несколько API, которые я интегрирую с и потребность звонить в различные части моего приложения.

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

Спасибо.

14
задан Timothy T. 21 July 2010 в 02:33
поделиться

2 ответа

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

# Eg
# development/environment.rb
....
API_1_USER = "user101"
API_1_PW = "secret!"

Альтернативой является создание yaml-файла, а затем его чтение, когда ваше приложение входит в api. Это стиль, используемый самими rails с файлом config / databse.yml

ADDED

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

# Eg
# development/environment.rb
....
API_1 = {"user" => "user101", "pw" => "secret!"}
API_2 = {"user" => "user102", "pw" => "double_secret"}

# or nested hashes
API_KEYS = {
             "api_1" => {"user" => "user101", "pw" => "secret!"},
             "api_2" => {"user" => "user102", "pw" => "double_secret"}}

# using them in another file:
foo.signin(API_1['user'], API_1['pw'])
# or
foo.signin(API_KEYS["api_1"]['user'], API_KEYS["api_1"]['pw'])

# note, I use string constants instead of symbols to save vm (since the hash is
# not referenced more than once or twice). You could also use
# symbols as the keys, especially if the hash will be referenced often:
API_1 = {:user => "user101", :pw => "secret!"}
4
ответ дан 1 December 2019 в 08:42
поделиться

Вы можете хранить имена пользователей / пароли и аналогичную информацию о конфигурации в механизмах, которые уже используются rails; вы можете либо поместить данные конфигурации прямо в файлы конфигурации вашей среды (где настроены production , testing и development ), либо вы можете использовать свой собственный механизм и:

require "yaml"
config_hash = YAML::load_file("/path/to/your/config.yaml")
7
ответ дан 1 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: