Heroku应用程序的API子域,是否可能?

时间:2013-03-01 14:39:50

标签: api rest heroku subdomain

我正在尝试构建一个API,我担心我的所有资源都无法通过api.myapp.com域访问,或者他们会“生活”错误的uris。

我已经为我的域名添加了CNAME以指向我的Heroku应用。 (例如:浏览www.myapp.com将您带到https://myherokuapp.heroku.com

我想设置一个API子域,以便GET到 https://api.myapp.com 带您进入 https://myherokuapp.heroku.com/api/v1

最佳方案是, https://api.myapp.com/accounts/12345 的POST会创建一个新帐户。这甚至可能吗?

(我知道Heroku无法使用子域名(例如:mysubdomain.myappname.heroku.com))

我相信答案可能分为三个不同的地方:

  1. 与DNS提供商转发配置有关(也许 与“A”记录有关。)
  2. 在Heroku中配置的东西,可能是用于处理域/子域的付费附加组件。
  3. 处理我的应用中的所有子域。

1 个答案:

答案 0 :(得分:2)

如果您想区分api.mydomain.com和www.mydomain.com并为您的API请求设置不同的控制器,那么您当然可以使用约束到您的api子域的Rails路由来处理此问题

constraints :subdomain => "api" do
  scope :module => "api", :as => "api" do
   resources :posts
  end
end

然后将使用应用程序的app / controllers / api文件夹中的posts_controller.rb。

然后,您将同时为www.mydomain.com和api.mydomain.com为您的应用程序添加自定义域名,然后路由将负责其余的工作。

您可能还想查看Grape Gem以帮助构建您的api