开始使用外部 API 和 Rails 中的 JSON 数据

Getting started with using an external API with JSON data in Rails

我是 Rails 的新手,我想弄清楚我将我的 API 令牌放在哪里用于我正在使用的外部 API(Google'秒)。我过去曾在 Sinatra 中使用 APIs,但 Rails 的目录结构让我迷失了我需要放置它的位置,以便我可以在控制器中访问它。将令牌放在某处后,我计划在控制器中创建一个创建方法并在那里解析 json 数据,以便我可以在相应的视图中访问它。如果有人可以帮助我在正确的方向上指导我将令牌放在哪里以便我可以访问它(最佳实践),并且如果我在正确的轨道上在控制器的方法中使用令牌以便我可以访问它在一个视图中。

我知道这个问题可能很笼统,但据我所知 Googled,许多 Rails 的新手可能会从这个问题中获益,知道把东西放在哪里。

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

在非生产环境中,您可以从 yml 文件加载 API 令牌,而在生产环境中,您可以将 Figaro for Heroku or Dotenv 之类的东西用于其他环境(AWS、DigitalOcean 等)。

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

您可以在 config/initializers 下添加您的 API 个代币。虽然,您可能会从相应的 API 文档中获得 gem 或说明,告诉您实现它们的最佳方法是什么。但是如果你通过初始化器实现它们,它会是这样的 -

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

一个很好的例子是 this guideheroku 访问 AWS