与环境有关的葡萄

时间:2015-02-23 11:50:24

标签: rack grape-api

我有一个直接使用rackup挂载的葡萄API,我想在生产或开发中部署api时使用环境选项来指定不同的URL

my config.ru

#\-p 4000 -s puma
require 'grape'

#require all module
modules = Dir.glob('**/api/*/*/module/*.rb')
modules.each do |m|
  require './'+m
end
#require all table
bases = Dir.glob('**/api/*/*/*.rb')
bases.each do |b|
  require './'+b
end
#require all api versions
apis = Dir.glob('**/api/*.rb')
apis.each do |a|
  require './'+a
end

run DataRetriever::API

1 个答案:

答案 0 :(得分:1)

我从rails获取结构灵感,并使用SettingsLogic来管理环境设置。 在你的架构文件中添加:

ENV['RACK_ENV'] ||= 'development'

如果您只想在某些环境中执行某些代码

require_relative "config/environments/#{ENV['RACK_ENV']}"

如果您想为每个环境使用不同的设置

require 'settingslogic'
class Settings < Settingslogic
  source File.join(File.dirname(__FILE__), 'config', 'settings.yml')
  namespace ENV['RACK_ENV']
end

你可以看我的入门应用 https://github.com/scauglog/grape_starter_api