我正在尝试构建一个 API,但我担心我的所有资源将无法通过 api.myapp.com 域访问,或者它们将使用错误的 uri“存活”。
我已经为我的域名添加了 CNAME 以指向我的 Heroku 应用程序。
(例如:浏览 www.myapp.com 会将您带到 https://myherokuapp.heroku.com )
我想设置一个 API 子域,以便 GET 到
https://api.myapp.com 带你到 https://myherokuapp.heroku.com/api/v1
最好的情况是 POST 到 https://api.myapp.com/accounts/12345 将创建一个新帐户。这甚至可能吗?
(我知道子域(例如:mysubdomain.myappname.heroku.com)在 Heroku 中是不可能的)
我相信答案可能在三个不同的地方:
与“A”记录有关)。
最佳答案
如果您想区分 api.mydomain.com 和 www.mydomain.com 并为您的 API 请求使用不同的 Controller ,那么您当然可以使用限制到您的 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用于帮助构建 api 的 Gem
关于Heroku 应用程序的 API 子域,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160328/