我当前的Rails应用程序具有以下子域:
ui.myapp.com
api.myapp.com
我想设置一个暂存环境,我想知道设置域名的最佳方法是什么。
通常,我会这样做:
staging.myapp.com
但是,如何访问UI / API网站?
好吗'要做:
ui.staging.myapp.com
api.staging.myapp.com
答案 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和普通站点。但是使用请求格式可以区分功能。
我希望这能回答你的问题。如果您仍有任何查询,请随时询问。