Я работаю над оболочкой API для Viddler , которая в конечном итоге станет общедоступной, и я пытаюсь найти лучший способ справиться с ключами аутентификации / API, особенно с использованием вИмеются в виду приложения на Rails.
Самый простой способ написать обертку - просто каждый раз, когда код создает новый клиент, а разработчик может хранить ключ API в константе для будущего использования:
@client = Viddler::Client.new(VIDDLER_API_KEY)
Проблема в том, что это немного неуклюже, когда приходится создавать клиентские объекты и передавать ключ API.Это становится еще сложнее, когда вы добавляете аутентификацию пользователя в смесь.
Я думаю, что какое-то решение, где я определяю ключ API в файле среды, а затем аутентификация будет выполняться вbefore_filter.
Viddler::Client.api_key = 'abc123'
Viddler::Client.authenticate! 'username', 'password'
Viddler::Client
будет хранить его в переменной класса, и вы сможете вызывать Viddler::Client.new
без каких-либо параметров и делать аутентифицированные вызовы.Одна вещь, которая меня беспокоит, это то, что разработчик должен обязательно очистить аутентификацию до или после каждого запроса, так как переменные класса будут сохраняться между запросами.
Есть мысли?