如何最好地在 Rails 应用和 Rails API 之间共享路线

How to best share routes between Rails app and Rails API

在完成了一些成功的学习项目后,我正在编写我的第一个 "real" Rails 应用程序,但我对应用程序与 API 路由的最佳实践仍然有点不确定。理想情况下,API 路线将是 RESTful,主要围绕使用 resources :articles 或其他,但我想知道以下两种情况中哪一种是最好的

感谢任何人的反馈。

默认 "Rails way" 是通过一组 URI 使您的模型可供不同的客户端使用,由一组控制器处理 — /articles 对于浏览器,/articles.json 或 /articles.xml 用于编程访问。您可以在 Rails 中看到强调 "resources"、控制器中的 respond_to 机制等等。

这对于与 CRUD 语义紧密匹配的更简单的 API 来说通常效果很好。如果你的出于某种原因没有,你最好把它分开。

尝试通过坚持这种 'one controller for both' 方法从简单的方法开始。如果你愿意,你可以使用

scope '(api)' do
  resources :articles
  resources :authors
  resources :comments
  # ...
end

向您的 URL 添加可选的“/api/”路径段 - 在这种情况下,为您提供 /api/articles/articles,路由到同一个控制器。如果您以后决定为 HTML 和 API 访问切换到单独的控制器,这为您提供了一个简单的出路。