大規模なアプリケーション用の API をビルドするには、パフォーマンスの観点からどの方法が優れているか、Rabl を使用するか、Jbuilder を使用するか、json オブジェクトを手動でビルドする必要がありますか?モバイル アプリ用の API /エンドポイントをビルドしています。
2 に答える
パフォーマンスに関しては、いくつかの基本的なパフォーマンス テストを作成して、プロファイルを作成する必要があります。
アプリケーションのモデルの関連付けの最も複雑な部分が、応答性の面で最も弱い部分であると想定し、それを中心にテストを設計します。
一般的に言えば、他にも考慮すべき点がいくつかあります。
as_json
オーバーライドはモデルですぐに手に負えなくなり、アプリケーションの脆弱な部分になります。多くの人は API をビューと見なしているため、API のロジックはモデルから分離して、柔軟性/交換可能性とテスト可能性を維持する必要があります。これは、JBuilder と RABL の主な利点です。最終的には、単純な JSON API で構築されたものでas_json
も、拡張が必要な場合はリファクタリングが必要になるため、DSL を学習/使用するという最初の複雑さはおそらく価値があります。そうは言っても、as_json
スケーラビリティとメンテナンスの問題を認識する必要があるだけで、まったく問題なく使用できる場合もあります。Jbuilder は以前はパフォーマンスが非常に低かったのですが、この質問が最初に投稿されたのとほぼ同時に大幅に改善されました。それ以前は、RABL の方がはるかにパフォーマンスが高かったです。この時点で、Jbuilder の方がわずかに高速です。
RABL の DSL は、一般的に Jbuilder の DSL よりも支持されておらず、開始時やその後のメンテナンスが困難になる可能性があります。Jbuilder の DSL は、どちらの場合も YMMV と比べて、一般的にシンプルで習得/使用が容易ですが、一般的なコンセンサスは、Jbuilder を選択して実行する方が簡単であるということです。
この質問は 5 か月前のものなので、すぐに確認できなくて申し訳ありません。決定はずっと前に行われたと思います。
Jbuilderをお勧めします。Jbuilder には Rails のコア開発があるためです。そのため、アップグレード時に問題が発生しない場合があります。