Это моя первая попытка написать приложение на Rails для использования внешнего веб-сервиса.
Я провел некоторые базовые эксперименты по извлечению некоторых записей из другого приложения rails через ActiveResource, который работал довольно хорошо, но в этом случаеЯ пытаюсь получить доступ к стороннему веб-сервису, который требует очень специфической аутентификации, прежде чем я смогу что-либо сделать.
Рассматриваемый сервис - это REST API, предоставляемый DNSMadeEasy, документация для которого может быть расположена по адресу http://www.dnsmadeeasy.com/services/rest-api/
Требования аутентификации согласно документации следующие:
- Создание строкового представления текущей даты и времени в формате HTTP.Пример: суббота, 12 февраля 2011 г. 20:59:04 GMT
- Рассчитайте шестнадцатеричный HMAC SHA1-хеш этой строки, используя ваш секретный ключ в качестве ключа хеш-функции.
- Установите значения для заголовков запросаиспользуя ваш ключ API, текущую дату и время и вычисленный вами хеш HMAC.
Итак, я выяснил, как получить дату и вычислить хеш:
request_date =Time.now.httpdate hmac = OpenSSL :: HMAC.hexdigest ('sha1', secret_key, request_date)
Итак, мой вопрос состоит из трех частей:
Во-первых, как мне потом вставить вставкуэта информация в заголовке HTTP, когда я отправляю свой запрос в веб-службу?
Во-вторых, как мне поместить все это в суперкласс, от которого наследуются мои классы ActiveResource, чтобы я неДолжны ли вы беспокоиться об этом в классах для Domain и ResourceRecord?
В-третьих, существует ли лучшая практика для хранения API и секретных ключей в вашем приложении, т.е. следует ли это делать с помощью инициализатора, или яЛучше всего использовать переменную окружения?
Любые советы и рекомендации для такого рода рабочих процессов будут чрезвычайно полезны.
Спасибо