8

我正在尝试构建一个 API,但我担心我的所有资源要么无法通过 api.myapp.com 域访问,要么它们将“使用”错误的 uri。

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

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

最好的情况是对https://api.myapp.com/accounts/12345的 POST将创建一个新帐户。这甚至可能吗?

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

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

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

1 回答 1

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

于 2013-03-01T16:56:40.433 回答