【问题标题】:Rabl, Jbuilder or manual json build for api?Rabl、Jbuilder 还是为 api 手动构建 json?
【发布时间】:2012-09-24 19:23:53
【问题描述】:

要为大型应用程序构建 api,就性能而言,哪种方法更好,我应该使用 Rabl、Jbuilder 还是手动构建 json 对象?我正在为移动应用程序构建 api /endpoints。

【问题讨论】:

    标签: ruby-on-rails json api rabl jbuilder


    【解决方案1】:

    在性能方面,您应该尝试创建一些基本的性能测试,并对其进行分析。

    假设您的应用程序模型关联中最复杂的部分是您在响应能力方面的最薄弱环节,并围绕它设计您的测试。

    一般来说,您还应该考虑其他一些事项。

    • as_json 覆盖将很快在您的模型中失控,并成为您应用程序的脆弱部分。许多人将 API 视为一种视图,因此它的逻辑应该与模型分离,以保持灵活/可互换和可测试。这是 JBuilder 和 RABL 的主要优点。最终,即使是使用as_json 构建的简单 JSON api 在需要扩展时也会请求重构,因此学习/使用 DSL 的初始复杂性可能值得。也就是说,在某些情况下使用as_json 是完全可以的,您只需要注意可扩展性和维护方面的问题。

    • Jbuilder 过去的性能很差,但是在这个问题首次发布的同时,它得到了很大的改进。在此之前,RABL 的性能更高。在这一点上,Jbuilder 快了一点。

    • RABL 的 DSL 通常不如 Jbuilder 的那么受欢迎,它在入门和后期维护中可能会很困难。一般来说,Jbuilder 的 DSL 更简单,更容易学习/使用,在这两种情况下都是 YMMV,但普遍的共识似乎是 Jbuilder 更容易上手和运行。

    因为这个问题已经 5 个月大了,抱歉我没有早点看到它,我希望早就做出决定了。

    【讨论】:

    • 使用 JBuilder 的次数远远超过 RABL,我应该明确表示我也对它有一点偏见。
    • 因为我有一个非常基本的 API,如果我只使用一个 application_controller.rb 并为每个 API 调用自定义路由会不会很糟糕?
    • 不好?好吧,它不会是 RESTful 的,并且(可能)会违反面向对象的设计原则 / SOLID en.m.wikipedia.org/wiki/SOLID_(object-oriented_design)。我倾向于建议您考虑一下,如果您实际使用它,任何事情最终都会变得很小,所以在前面不要太懒惰是值得的,这样您将来可以保持一点懒惰(或至少减轻压力),当您需要扩展项目时,这种情况经常发生,即使最初没有计划。
    【解决方案2】:

    我建议使用 Jbuilder。因为Jbuilder有Rails的核心开发。所以在升级时它可能不会产生问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 2010-10-02
      • 2014-10-21
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      相关资源
      最近更新 更多