这是我第一次尝试编写Rails应用程序以使用外部Web服务。通过ActiveResource向Web服务提供凭证
我已经做了一些基本的实验,通过ActiveResource从另一个Rails应用程序检索一些记录,这些记录工作得很好,但在这种情况下,我试图访问第三方Web服务,在我能做任何事情之前需要非常特定的身份验证。
有问题的服务是由DNSMadeEasy提供的REST API的文档可在http://www.dnsmadeeasy.com/services/rest-api/
根据文档的认证要求被定位如下:
- 创建的字符串表示以HTTP格式显示当前日期和时间。例如: 周六,2011年2月12日20时59分04秒GMT
- 计算使用你的密钥作为哈希密钥字符串的十六进制HMAC SHA1哈希。
- 使用您计算的API密钥,当前日期和时间以及HMAC散列来设置请求标头的值。
所以我想通了,如何让日期和计算哈希:
REQUEST_DATE = Time.now.httpdate HMAC = OpenSSL的:: HMAC.hexdigest( 'SHA1',SECRET_KEY,REQUEST_DATE)
所以我的问题有三个部分:
首先,当我向Web服务发送我的请求时,如何将这些信息插入到HTTP标头中?
其次,我怎样才能把所有这些放在我的ActiveResource类继承的超类中,这样我就不必为Domain和ResourceRecord的类担心了吗?
第三,在您的应用程序中是否存储API和密钥的最佳做法,即应该使用初始化程序完成,还是最好使用环境变量?
对于这种工作流程的任何提示和技巧将非常感激。
感谢
真棒,感谢的是,会试试看。 – 2012-03-26 05:52:17
如果您认为我回答了您的问题,您可以将其标记为已接受:) – Nobita 2012-03-26 14:48:28