开始在Rails中使用带有JSON数据的外部API

时间:2015-02-12 20:53:23

标签: ruby-on-rails api

我是Rails的新手,我正在试图弄清楚我将API令牌放在我正在使用的外部API的位置(谷歌之一)。我以前和Sinatra一起使用过API,但是Rails的目录结构让我放弃了我需要放置它的位置,所以我可以在控制器中访问它。在我将令牌放在某处之后,我计划在控制器中创建一个create方法并解析那里的json数据,以便我可以在相应的视图中访问它。如果有人可以指导我正确指导我放置令牌的位置,以便我可以访问它(最佳实践),如果我在正确的轨道上使用控制器中的方法中的令牌,那么我可以在视图中访问它。

我知道这个问题可能是通用的,但是根据我的Google搜索,许多刚接触Rails的人可能会从中获益于放置东西。

2 个答案:

答案 0 :(得分:1)

我建议您通过rails初始化程序加载API密钥。 rails初始化器存在于config / initializers中,是在服务器启动后运行的纯ruby脚本。在这里,您可以执行诸如加载配置文件等操作。例如,config / initializers / google_oauth.rb可能包含一些普通的ruby代码,用于加载包含非生产环境的API凭据的config / .yml文件。

在非生产环境中,您可以从yml文件加载API令牌,在生产中,您可以为Heroku使用Figaro或在其他环境中使用Dotenv(AWS,DigitalOcean等)

要确保的重要一点是,本地配置文件和API令牌不受版本控制,以免损害您的令牌和应用程序的安全性。

答案 1 :(得分:1)

您可以在config/initializers下添加API令牌。虽然,您可能会有gem或来自相应API文档的说明,告诉您实施它们的最佳方法。但是如果你通过初始化程序实现它们,那就是这样的 -

GoogleApi.config do |config|
     config.client_id = "<Your Google API Client Id>"
     config.client_secret = "<Your Application Secret>"
     config.application_name = "<Your Application Name>"
end

然后您就可以在控制器中使用GoogleApi

一个很好的例子是heroku this guide来访问AWS