0

我有一个也提供 API 的 Web 应用程序。API 相当简单,所以我只是在 response_to 块中处理它并在请求时返回 json。现在我想对我的 API 进行版本控制。我在看版本主义宝石。这提到使用 config/routes.rb 中的 api_version 方法来更改基于 API 版本的路由。不过我不明白这一点,因为我认为路线是相同的,但响应的行为会改变。

我的问题是,我的 Web 和 API 部分是否需要单独的控制器?另外,我需要一个单独的 API 命名空间吗?或者有没有办法保持现在的状态?

4

1 回答 1

0

在提供 API 时,您可能希望做一些不同的事情。其中之一是能够设置 API 版本,这样您就可以通过添加新版本来增强 API 而不会破坏现有客户端。如果您的 API 非常简单,您可以通过提供包含该版本的第二组路由来实现此目的。您可以为此使用版本控制程序。但是,当您需要添加版本时,最简单的解决方案(以及将关注点很好分离的解决方案)将是持有一组单独的控制器,并保持它们精简,这样就不会出现代码重复。这可能允许您为 API 使用额外的 gem(例如 RABL、JBuilder 或 Rocketpants)。他们每个人都有 railscast,我建议观看他们以了解 API 构建的背景。

于 2013-01-20T19:30:15.477 回答