【发布时间】:2014-01-12 21:19:07
【问题描述】:
在 Padrino 应用程序中,我有一个带有常规路由的 posts 控制器:
Blog::App.controllers :posts do
get :index do
...
end
get :show, :with => :id do
...
end
end
因此,这为我提供了 posts 命名空间中的正常 URL 访问
http://blog.dev/posts
http://blog.dev/posts/show/1
现在我想通过 REST API 从命名空间之外的不同路径提供访问权限,例如:
http://blog.dev/api/v1/post/all
http://blog.dev/api/v1/post/1
如何为我的 posts 控制器定义 API,并使用其正常命名空间之外的路由?
我必须承认,我不确定我的方法是否通用。我可以定义一个新的 API V1 控制器,但在这种情况下,我将不得不在两个不同的地方复制关于 posts 的信息。
如果这应该使用 API 控制器来完成,我想知道该任务通常使用哪些 gems 和/或约定。理想情况下,我想要将不同 API 版本与当前模型对象协调的东西。
【问题讨论】:
-
This 是一个 Rails 教程。不过,我认为没有理由不能在您的情况下使用主要逻辑。
-
您是客户端,API 应该是分开的。然后客户端可以调用 API 获取数据,而不是成为不同命名空间下的 API。