如何最好地在 Rails 应用和 Rails API 之间共享路线
How to best share routes between Rails app and Rails API
在完成了一些成功的学习项目后,我正在编写我的第一个 "real" Rails 应用程序,但我对应用程序与 API 路由的最佳实践仍然有点不确定。理想情况下,API 路线将是 RESTful,主要围绕使用 resources :articles
或其他,但我想知道以下两种情况中哪一种是最好的
- 使用 RESTful 路由创建应用程序本身,然后在 "api" namespace/subdomain 中添加一个 API,例如,在身份验证后,搭载相同的路由(还不确定如何使用不同的身份验证来进行 piggy backing,但稍后会出现。或者;
- 使用语义化且运行良好的任何路由创建应用程序本身(理想情况下仍基于 CRUD),然后为 API (RESTful)[= 创建一组全新的控制器和路由21=]
感谢任何人的反馈。
默认 "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 访问切换到单独的控制器,这为您提供了一个简单的出路。
在完成了一些成功的学习项目后,我正在编写我的第一个 "real" Rails 应用程序,但我对应用程序与 API 路由的最佳实践仍然有点不确定。理想情况下,API 路线将是 RESTful,主要围绕使用 resources :articles
或其他,但我想知道以下两种情况中哪一种是最好的
- 使用 RESTful 路由创建应用程序本身,然后在 "api" namespace/subdomain 中添加一个 API,例如,在身份验证后,搭载相同的路由(还不确定如何使用不同的身份验证来进行 piggy backing,但稍后会出现。或者;
- 使用语义化且运行良好的任何路由创建应用程序本身(理想情况下仍基于 CRUD),然后为 API (RESTful)[= 创建一组全新的控制器和路由21=]
感谢任何人的反馈。
默认 "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 访问切换到单独的控制器,这为您提供了一个简单的出路。