Para construir api para una aplicación a gran escala, ¿qué método es mejor interms de rendimiento? ¿Debo usar Rabl, Jbuilder o construir objetos json manualmente? Estoy construyendo api/endpoints para aplicaciones móviles.Rabl, Jbuilder o manual json build for api?
Respuesta
En términos de rendimiento, debe intentar crear algunas pruebas de rendimiento básicas y perfilarlas.
Asuma que la parte más complicada de las asociaciones de modelos de su aplicación es su punto más débil en términos de capacidad de respuesta y diseñe su prueba al respecto.
En general, hay algunas otras cosas que debe tener en cuenta.
as_json
anulaciones obtendrán rápidamente de la mano en sus modelos, y se convierten en una parte frágil de su aplicación. Muchas personas consideran una API como una vista y, por lo tanto, la lógica para ello debe separarse del Modelo, para que sea flexible/intercambiable y comprobable. Esta es la principal ventaja de JBuilder y RABL. Finalmente, incluso una simple API JSON construida conas_json
pedirá refactorización cuando sea necesario ampliarla, por lo que probablemente valga la pena la complejidad inicial de aprendizaje/uso de una DSL. Dicho esto, ciertamente hay algunos casos en los que está perfectamente bien usaras_json
; solo debe tener en cuenta los problemas de escalabilidad y mantenimiento.Jbuilder solía tener un rendimiento bastante pobre, sin embargo, esto se mejoró mucho más o menos al mismo tiempo que esta pregunta se publicó por primera vez. Antes de eso, RABL era mucho más eficiente. En este punto, Jbuilder es un toque más rápido.
El DSL de RABL es generalmente menos favorecido que el de Jbuilder, puede ser una dificultad para comenzar y en el mantenimiento posterior. El DSL de Jbuilder es generalmente más simple y fácil de aprender/usar, en ambos casos YMMV, pero el consenso general parece ser que Jbuilder es más fácil de usar y ejecutar.
Dado que esta cuestión es de 5 meses de edad, lo siento, no lo vi antes, espero que hace mucho tiempo ha sido tomado la decisión.
Sugiero Jbuilder. Porque Jbuilder tiene un desarrollo central de Rails. Por lo tanto, en el momento de la actualización no puede crear un problema.
- 1. Xcode 4 términos "Build for testing/Build for running/build for profiling/build for archiving"
- 2. RABL: objetos JSON sin raíz clave
- 3. Configuración manual de shadow build en qmake
- 4. Cómo "ordenar por identificación" JSON con Rabl
- 5. Perforce tasks for MS Build
- 6. Automation for Android release build
- 7. ¿Cómo usar RSpec con JBuilder?
- 8. Mejora del rendimiento de representación con Jbuilder and Rails 3
- 9. CSV API for Java
- 10. Reflection API for Scala
- 11. Backbone.js: Build JSON array de la colección
- 12. Rails 3 ActiveRecord API: .build method
- 13. Json Schema Example for patternProperties
- 14. yacc/lex o codificación manual?
- 15. .NET API for HID (USB)?
- 16. Map API for Java Swing
- 17. Renderizar plantilla ERB en plantilla RABL
- 18. Uso de RABL con Draper para renderizar to_json
- 19. Cómo hacer json api
- 20. JSON SerDe for Hive que admite matrices JSON
- 21. MVC2 o WCF para una API REST XML/JSON?
- 22. JBuilder no recoger su cuerpo de la respuesta en JSON al probar RSPEC
- 23. Rails 3.1 anidamiento profundo con RABL
- 24. Cómo paginar colecciones de Rabl
- 25. Rabl Colección de modelos múltiples
- 26. RESTful JSON API Documentation Generator
- 27. OpenGL GL_SELECT o detección de colisión manual?
- 28. Analizando JSON API en C#
- 29. File API - Blob to JSON
- 30. Maven Source for javax javaee-api 6.0
¡Gran idea! ¡Gracias! –
Después de haber usado JBuilder mucho más que RABL, debo dejar en claro que también estoy un poco predispuesto hacia eso. – ocodo
Dado que tengo una API muy básica, ¿sería malo si acabo de utilizar un application_controller.rb con una ruta personalizada para cada llamada API? –