【发布时间】:2012-09-24 19:23:53
【问题描述】:
要为大型应用程序构建 api,就性能而言,哪种方法更好,我应该使用 Rabl、Jbuilder 还是手动构建 json 对象?我正在为移动应用程序构建 api /endpoints。
【问题讨论】:
标签: ruby-on-rails json api rabl jbuilder
要为大型应用程序构建 api,就性能而言,哪种方法更好,我应该使用 Rabl、Jbuilder 还是手动构建 json 对象?我正在为移动应用程序构建 api /endpoints。
【问题讨论】:
标签: ruby-on-rails json api rabl jbuilder
在性能方面,您应该尝试创建一些基本的性能测试,并对其进行分析。
假设您的应用程序模型关联中最复杂的部分是您在响应能力方面的最薄弱环节,并围绕它设计您的测试。
一般来说,您还应该考虑其他一些事项。
as_json 覆盖将很快在您的模型中失控,并成为您应用程序的脆弱部分。许多人将 API 视为一种视图,因此它的逻辑应该与模型分离,以保持灵活/可互换和可测试。这是 JBuilder 和 RABL 的主要优点。最终,即使是使用as_json 构建的简单 JSON api 在需要扩展时也会请求重构,因此学习/使用 DSL 的初始复杂性可能值得。也就是说,在某些情况下使用as_json 是完全可以的,您只需要注意可扩展性和维护方面的问题。
Jbuilder 过去的性能很差,但是在这个问题首次发布的同时,它得到了很大的改进。在此之前,RABL 的性能更高。在这一点上,Jbuilder 快了一点。
RABL 的 DSL 通常不如 Jbuilder 的那么受欢迎,它在入门和后期维护中可能会很困难。一般来说,Jbuilder 的 DSL 更简单,更容易学习/使用,在这两种情况下都是 YMMV,但普遍的共识似乎是 Jbuilder 更容易上手和运行。
因为这个问题已经 5 个月大了,抱歉我没有早点看到它,我希望早就做出决定了。
【讨论】:
我建议使用 Jbuilder。因为Jbuilder有Rails的核心开发。所以在升级时它可能不会产生问题。
【讨论】: