rails app / api的最佳方法

时间:2013-12-29 00:22:03

标签: ruby-on-rails api

我正在开发一个rails应用程序,它是一个常规站点,但我需要开发一个API,所以我正在阅读并尝试一些东西,我认为的选项(欢迎其他人):

  • 对API进行版本控制并将API与控制器分开。 亲:清洁和分开的东西。缺点:需要为同一任务处理2个控制器。

  • 不进行版本控制并将所有内容保存在同一个控制器中,可以使用jbuilder完成视图。亲:不是很简单的版本。缺点:更难暴露应用程序的部分内容。更难以以版本化的方式传递内容。

我真的想避免重复,但我需要一些方法来避免这种情况,并以版本化的方式制作一些不错的路径,我不希望在某个版本的对象中有一个以上的控制器如果您有3个版本,最终会得到4个控制器,这需要维护很多。

如果我错了,请纠正我,并希望得到一些好的答案:)

感谢。

2 个答案:

答案 0 :(得分:0)

我总是在自己的命名空间中编写api,因为这些点可能与主应用程序非常不同:

  • 格式规则

  • AUTH

  • 救援

  • 版本

  • 过滤器之前/之后

即使你在控制器中有重复,也不应该有太多的代码,我不明白为什么这将是一个大问题。实际上它甚至可能会迫使你抽象你的代码并拥有瘦控制器。

答案 1 :(得分:0)

对API进行版本控制是最佳选择。

如果您有4个版本,1个控制器,您仍然只需要维护2个控制器(面向Web的应用程序和最新版本的API)。

如果您在API中具有写入权限,则可以在应用程序中利用自己的API,而无需在API和主应用程序(AJAX)中创建new方法

您的过滤器可能不同。您可能需要为API和主应用程序提供不同类型的身份验证。

版本控制的最大理由可能是,如果除了自己使用API​​之外还有其他任何人,那么他们的应用程序不会破坏您部署更改的那一天。

此外,你应该遵守'瘦控制器,胖模型'的心态。这样就可以防止大量重复。