I am pleased to announce the availability of RestyGWT 1.0.
RestyGWT is a GWT generator for REST services and JSON encoded data transfer objects. What I really like about it is that it allows you to write rich JAX-RS based services and access those services from at GWT client reusing all the same DTO objects that you use on the server side.
In other words, it just as easy to use as GWT-RPC except it’s using simple RESTful URLs and JSON encoding of data when it access server side resources. This has the nice benefit that you can implement the server side in something other than JAVA easily.
Further information see:
If your familiar with GWT RPC, then you you know that it’s it’s provides a very nice client side framework for doing AJAX requests against Java Servlets. The sad part is that it uses a binary protocol. That protocol is not easily understood by other languages or frameworks.
Counter that with latest AJAX rage, RESTful services with a JSON or XML representation of the data. The nice thing about using JSON with REST services is that clients and servers can easily be built it any language. Wouldn’t it be nice if you use JSON RESTful services from GWT with the ease of GWT RPC?
That’s exactly the reason I started hacking on RestyGWT. It uses a very similar development model as GWT RPC. You create a service interface who’s implementation is code generated via Deferred Binding when your GWT module is built. The developer maps the interface methods to RESTful HTTP requests using the excelent JAX-RS annotations. Just like in GWT RPC, the interface must be ‘asynchronous’. You must use callback method arguments to get the request results. But unlike GWT RPC, the data sent and received will be JSON encoded. RestyGWT will automatically code generate JSON encoders and decoders for any classes sent or received from the rest service.
For more details see the Git Hub home page at: http://github.com/chirino/resty-gwt
As of this point, RestyGWT only implements the most basic JAX-RS annotations and provides a very simple JSON encoding scheme. Despite that, the project is already extremely useful. I would love here what folks think about it.