5 ms·
"Rails is great for JSON APIs" Rails is good for simple APIs (especially adding an API to an existing HTML site). However, if you want to do more than that, e
by mtkd 14y ago
"Rails is great for JSON APIs"
Rails is good for simple APIs (especially adding an API to an existing HTML site).
However, if you want to do more than that, elegantly - it isn't great yet. You quickly end up with some fairly messy serialization hacks and confusion between what should sit in the controller and the model.
The active_model_serializers gem is a really good start, but there is a way to go to get to the level of convention the rest of Rails provides.
Soon it will be great I have no doubt and the convention/stability of Rails will lead a lot of businesses to start using it.
- randomdata 14y agoI do agree that the way to provide APIs has been poorly conveyed by the core members. All of the samples end up amounting to: render :xml => @objects Which, naturally, falls apart quickly beyond the most basic serialization. However, as long as you treat the API like any other view (even HTML is just another API format), then Rails does a pretty decent job.
- nateberkopec 14y agoWhy not use a format-specific DSL, like DHH does with jbuilder? That's not messy at all, it's basically just another TemplateHandler.
- codenerdz 14y agoOr RABL if you want both XML and JSON output
- joedoe55555 14y agoOr XSLT if you want both Oracle and IIS at the same time
- nateberkopec 14y agoThat sounds horrible.
- cheald 14y agoUse decorators. Draper is my personal favorite, and it very cleanly solves the issue of serialization nightmares and controller/model confusion. (I hope that it ends up in the Rails core someday, because it really is a gamechanger in how Rails is used for non-HTML content!)
- VeejayRampay 14y agoAgreed, Draper + Jbuilder and you got yourself plenty of decoupling and beauty.