Это моя первая попытка написать приложение Rails для использования внешнего веб-сервиса.Предоставление учетных данных веб-сервису через ActiveResource
Я провел некоторое базовое экспериментирование, извлекая некоторые записи из другого приложения 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 и секретных ключей в вашем приложении, то есть если это нужно сделать с помощью инициализатора или лучше использовать переменную окружения?
Любые советы и рекомендации для такого рода рабочих процессов будут чрезвычайно оценены.
Благодаря
удивительный, спасибо за это, дам ему попробовать. –
, если вы думаете, что я ответил на ваш вопрос, вы можете отметить его как принятый :) – Nobita