什么是shell环境?使用API

时间:2014-06-03 17:15:14

标签: ruby api

我正在关注API ruby​​教程并使用Lastfm api进行一步,它说要做到这一点。

And we should add some setup to our spec_helper.rb:

LastRubyFm.api_key = ENV['last_fm_api_key']

We use the shell environment as a way to access the last fm api key. The ENV has looks at the      
collection of our shell's environment variables. In order to use this functionality it will be   
necessary for you to execute the following in your shell:

export last_fm_api_key='<YOUR API KEY>'


This keeps our credentials secure so that they are not committed into source control. You will   
have  to run this every time you use this library or run tests with it, so let's set up a .env 
file. This adheres to a popular principal that is part of the Twelve factor app.

export last_fm_api_key='<YOUR API KEY>'

Now, every time you run the suite on this library, you can run source .env loading this   
 environment variable every time.

首先是目录中​​的.env文件。第二个究竟是什么进入.env文件?它是出口信息吗?

我很困惑,因为本教程介绍了如何在包装器中创建API。我如何获得其API的用户凭据?

1 个答案:

答案 0 :(得分:3)

他们试图获得的核心是将配置变量保留在存储库之外,从而更加安全。但是,我同意文档有点令人困惑。

基本上,您可以将环境中的变量存储为变量(例如,如果您使用bash作为shell,则使用bash变量)。有关其工作原理及其有用原因的详细说明,请参见Heroku's config vars文档。

假设您使用bash shell,您可以在~/.bashrc文件中添加一行,例如:

export last_fm_api_key='<YOUR API KEY>'

执行此操作后,重新启动shell。您会注意到,如果在shell中键入last_fm_api_key,则会返回您的API密钥。您可以通过ENV常量在

中找到该环境

特别是对于.env文件,我认为它们指的是dotenv gem。就个人而言,我更喜欢figaro gem,但无论你需要什么,都应该使用。 RailsApps有一些很好的文档,包括替代方案。