One of the things about Angular that's both a feature and a point of complexity, is that it's not very opinionated about how to interact with a RESTful API. I know about $resource, Restangular, and various ideas you can find on rolling your own.
In a complex application that's got a large number of resources, including various nestings, there's reason to think that Restangular's superior to $resource; for similar reasons, also that Restangular's better than rolling your own.
One solution that I haven't seen until recently is JSData and its wrapper for AngularJS (repo). Judging from the number of favorites on Github (~900), it has a decent number of people at least interested in it, if not using it. It's only a fraction of the following that Restangular has on Github (5k+), but still significant.
For those who have used both Restangular and JSData, what's your take on how they compare (strengths/weaknesses; differences in purpose, reliability, etc.; things that may not be readily apparent from the docs)? For this question to remain open, please stick to facts rather than opinions.
My impressions from what I've read are the following:
Restangular
- (+) Big mindshare
- (+) Highly customizable
- (-) Focus seems to be on the actual interaction with the RESTful API only, rather than also being opinionated/acting as a data store once it's returned (please correct me if I'm wrong). Granted, this could be considered a feature, in the same way Angular's lack of opinion is a feature. I'm putting this is as a disadvantage for now, though, because of the additional legwork this means for the developer to come up with their own solution.
JSData
- (+) Works not only with REST, but localStorage, localforage, Firebase, etc, including custom adapters
- (+) Designed as a cached data store to not have to repeat HTTP calls (to be fair, caching is also an option with Restangular, though perhaps less intertwined/critical to its mission)
- (-) Not as large a following, although the developer does seem committed