Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Yoga: RESTful and flexible

DZone's Guide to

Yoga: RESTful and flexible

· Java Zone ·
Free Resource

Verify, standardize, and correct the Big 4 + more– name, email, phone and global addresses – try our Data Quality APIs now at Melissa Developer Portal!

I've been working on yoga a hybrid REST theory/practice framework that "rests" on top of other Java REST MVC frameworks. The core of the framework is a custom rendering engine that converts POJOs to the user's desired representation. The guiding principles we used were:

  1. User defined "traversal" of objects (for example, only show a specific "tree" from an ORMed POJO)
  2. Plug-and-play representations
  3. Content Negotiation is more than just format, it's about content as well.
  4. NO DTOs!
  5. Links should provide a mechanism to get additional information
  6. Create a surfable API (as seen in Dr. Jon Moore's Hypermedia APIs talk)
  7. Allow flexibility to specify the "view" they care about - which will allow the user to reduce N+1 chattiness that so many REST systems have. - inspired by LinkedIn’s JavaOne presentation on building flexible REST interfaces.
  8. User code and integration should be as simple as possible.
  9. Allow for "augmentation" of the response data outside of the POJO
  10. Focus on documentation
  11. Showcase the runtime

We've done quite a bit of work to achieve the current state. The next steps include some additions of metadata and a UI that can "surf" that metadata.

Feedback would be greatly appreciated. We don't have a "real life" usage of Yoga yet, but will gladly support a "real life" endeavor

 

From http://www.jroller.com/Solomon/entry/yoga_restful_and_flexible

Developers! Quickly and easily gain access to the tools and information you need! Explore, test and combine our data quality APIs at Melissa Developer Portal – home to tools that save time and boost revenue. Our APIs verify, standardize, and correct the Big 4 + more – name, email, phone and global addresses – to ensure accurate delivery, prevent blacklisting and identify risks in real-time.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}