当应用程序已有子域时暂存子域

时间:2014-09-24 17:14:20

标签: ruby-on-rails subdomain staging

我当前的Rails应用程序具有以下子域:

ui.myapp.com
api.myapp.com

我想设置一个暂存环境,我想知道设置域名的最佳方法是什么。

通常,我会这样做:

staging.myapp.com

但是,如何访问UI / API网站?

好吗'要做:

ui.staging.myapp.com
api.staging.myapp.com

1 个答案:

答案 0 :(得分:0)

假设:API调用的输出预期为JSON格式。

对于像api.staging.myapp.com这样的功能,不建议使用单独的子域。您始终可以将相同的URL用于Web应用程序和API 更好的方法是使用Rails应用程序中的相同控制器操作,而是返回JSON输出散列。

例如,要获取用户,您将在users_controller.rb中将一些代码作为

class UsersController < ApplicationController
  def index
    @users = User.all
    respond_to do |format|
      format.html do
        render :index
      end
      format.json do
        render :json => {:users => @users}
      end
    end
  end
end

现在,如果请求是html,它将呈现html页面,否则它将返回json响应。

staging.myapp.com/users将为您提供显示用户集合的Web应用程序的html页面,而staging.myapp.com/users.json将为您提供用户集合的json响应哈希。

因此,您不需要不同的子域来区分api和普通站点。但是使用请求格式可以区分功能。

我希望这能回答你的问题。如果您仍有任何查询,请随时询问。