essential is a lightweight framework for realizing RESTful services in Java. essential naturally supports XML and JSON as input and output media types for resources. It enables clients to choose their preferred media type and takes care of request deserialization and response serialization.
In one sentence: essential only expects developers to implement resource logic and takes care about the REST.
Implementing REST with essential means nothing more than putting some annotations on casual Java methods. The framework recognizes how to deserialize input for fields and method parameters as well as how to serialize the method results. Also the HTTP header handling, content type detection and everything else which is not related to your resource logic is managed by essential.
essential is easy to set up and does not require any configuration while giving you the possibilities to customize and extend the framework in regard to your special needs. essential can be used with any kind of Java framework, server or web container. Though, to make things even easier, essential comes along with implementations for popular contexts such as for servlets.
essential automatically generates a resource description in the WADL (Web Application Description Language) format. This description provides links to related resources and enables semantic search within resources as well as navigational user documentation.
As the framework is licenced under the LGPL, it is usable for free - also for commercial purpose.
essential having a configurable architecture, it is easy to modify and customize. Also, it is based on a generalized, minimalistic core which is the base and interface for other modules. This way, developers can easily build upon and extend the framework.
Feel free to add new modules to essential, to suggest improvements and to share your valuable experience with other developers.