Rabl, Jbuilder oder manuell json build for api?

8

Um API für eine große Anwendung zu erstellen, welche Methode ist besser Leistung, sollte ich Rabl, Jbuilder verwenden oder JSON-Objekte manuell erstellen? Ich baue API / Endpunkte für mobile Apps.

    
katie 24.09.2012, 19:23
quelle

2 Antworten

17

Im Hinblick auf die Leistung sollten Sie versuchen, einige grundlegende Leistungstests zu erstellen und sie zu profilieren.

Nehmen Sie an, dass der komplizierteste Teil der Modellzuordnungen Ihrer Anwendung Ihr schwächster Punkt in Bezug auf die Reaktionsfähigkeit ist und gestalten Sie Ihren Test damit.

Generell gibt es ein paar andere Dinge, die Sie beachten sollten.

  • as_json Überschreibungen werden in Ihren Modellen schnell außer Kontrolle geraten und zu einem spröden Teil Ihrer Anwendung werden. Viele Menschen betrachten eine API als Sicht, und daher sollte die Logik dafür vom Modell getrennt sein, um flexibel / austauschbar und testbar zu bleiben. Dies ist der Hauptvorteil von JBuilder und RABL. Letztendlich wird selbst eine einfache JSON-API, die mit as_json erstellt wurde, um eine Erweiterung des Refactorings betteln, wenn sie erweitert werden muss. Daher ist es wahrscheinlich die anfängliche Komplexität des Erlernens / Verwendens einer DSL wert. Das heißt, es gibt sicherlich einige Fälle, in denen es völlig in Ordnung ist, as_json zu verwenden, Sie müssen sich nur der Probleme mit Skalierbarkeit und Wartung bewusst sein.

  • Jbuilder hatte früher eine ziemlich schlechte Performance, aber diese wurde zur gleichen Zeit, als diese Frage zum ersten Mal gestellt wurde, stark verbessert. Vorher war RABL viel leistungsfähiger. An diesem Punkt ist Jbuilder eine Berührung schneller.

  • RABLs DSL ist im Allgemeinen weniger beliebt als die von Jbuilder, es kann eine Schwierigkeit sein, mit dem Start zu beginnen, und in der späteren Wartung. Jbuilders DSL ist im Allgemeinen einfacher und einfacher zu lernen / zu verwenden, in beiden Fällen YMMV, aber der allgemeine Konsens scheint zu sein, dass Jbuilder leichter zu erlernen und zu benutzen ist.

Da diese Frage 5 Monate alt ist, tut mir leid, dass ich sie nicht früher gesehen habe, ich erwarte, dass die Entscheidung längst getroffen wurde.

    
ocodo 22.02.2013 00:55
quelle
0

Ich schlage Jbuilder vor. Weil Jbuilder die Kernentwicklung von Rails hat. Zum Zeitpunkt der Aktualisierung kann es daher nicht zu Problemen führen.

    
user3067558 06.12.2013 12:28
quelle