我正在尝试构建一个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))
我相信答案可能分为三个不同的地方:
答案 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