【问题标题】:Best approach for rails app/apirails app/api 的最佳方法
【发布时间】:2014-01-16 05:38:42
【问题描述】:

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

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

  • 不进行版本控制并将所有内容保存在同一个控制器中,可以使用 jbuilder 完成视图。优点:不是很容易对其进行版本控制。缺点:更难只公开应用程序的一部分。更难以版本化方式路由内容。

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

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

谢谢。

【问题讨论】:

  • 感谢你们俩,我知道这是最好的选择,但我不确定,我正在使用设计和很多东西,所以似乎是版本的正确选择它,并为公众保留一个好的api......

标签: ruby-on-rails api


【解决方案1】:

对您的 API 进行版本控制是最佳途径。

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

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

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

版本控制的最大争论可能是,如果您有其他人在使用 API,那么他们的应用程序不会在您部署更改的那一天中断。

此外,您应该保持“瘦控制器,胖模型”的心态。这样就可以防止很多重复。

【讨论】:

    【解决方案2】:

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

    • 格式规则

    • 授权

    • 救援

    • 版本控制

    • 过滤器之前/之后

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      相关资源
      最近更新 更多