|
|
|
|
|
WADL
(TA entries |
The latest Jersey has recently improved on a variant of this approach where the runtime dynamically generates WADL to represent an endpoint - see Marc and Paul. As they put it, this lets you "Waddle through the service". Seems an interesting approach.
BTW - Jersey is done in coordination with the Metro work and the Metro Roadmap shows the Jersey 1.0 fully integrated with Metro 2.1 late next year.
|
More WADL news from Thomas: the latest version of REST Compile can generate clients in Ruby and Python in addition to the original PHP. As before, the Web App is here (and the german version is here - no catalan yet :-]). Since we are Wadling..., check Paul's comments on its benefits and the documentation on RESTful Web Services in SWDP r2 - which also supports WADL. |
|
Thomas is making progress with REST Compile and REST Describe. The latest release (0.2 - Web App, Source Bundle) includes a WADL editor and a generator for client code from WADL (PHP for now) as well as support for more WADL features. For more details on WADL check the web site, and these earlier TA entries; for details on REST compile and describe, check Thomas' entry. |
WADL seems to be gaining traction. A bit too early, but I think WADL will be a winner, and things like Thomas' work is addressing both the value proposition (generating clients) and the cost (inference from existing messages). Looking forward to more examples of tools exploiting WADL (validators, for example...).
|
A bit lost in the noise of JavaOne was the announcement of the Release of SWDP R2. This is a bundle (home page, download page) of a several key Web 2.0 technologies that can work on Java containers, including Tomcat and GlassFish. The technologies include: jMaki, Dynamic Faces, Phobos, WADL, Rome, and Rome Propono. Also included are some Java APIs for REST which were the original submission on JSR-311; and check Paul's recent blog for a report on how that is going... |
|
Thomas Steiner is exploring some interesting tools on top of WADL. REST Describe takes a (set of) REST messages and infers a WADL from them, while REST compile would generates code in multiple languages from a WADL description. REST Describe is already available as beta ZIP file, online and has received a fair amount of interest [1], [2]. REST Compile is not yet available, but I need to check with Thomas and Pat for the latest news. |
Overall, Thomas (and Pat) seem quite happy with their choice of WADL. I will track the developments and will post latest news under the WADL tag.
|
URI Templates (spec, Joe Gregorio's blog, James Snell's blog) are string templates with embedded variables that become an URI when the variables are instantiated. The spec is simple, short (9 pages altogether) and it is an IETF "internet draft". An URI template seems a very good match for simple REST-based applications and, indeed, Marc's latest revision of WADL incorporates URI Template Support. |
I am sure we are going to see much more use of URI templates. To play with URI templates and WADL, check the OpenSource implementation at WADL.dev.java.net.
|
Typed XML over HTTP has many benefits: it combines the properties of HTTP with the simplicity, flexibility and reusability of XML, and the type information (be it a XML Schema, Relax NG, the older DTD or just informal), provides isolation across customers and producers. Simplicity is key: it is possible to quickly write a consumer or producer for this class of services in almost any language, including AJAX clients. And what has been missing is a simple, standard way to describe (WSDL is too complex) the services that can be used to advertise them and that can be used by different tools. WADL fills in this gap, and Marc just announced an Open Source project around this effort. |
There are many opportunities for contributions; I personally would like to see tools for languages different than Java, and using annotations to further simplify the Map to Java. You could also help start cataloging more servicers available in the web; you do not even need to use XSD, WADL supports also Relax NG. And, if your site is a Web Services producer, I would encourage you to include a WADL description of your service.
Some people use the term REST to mean any typed XML over HTTP; the two are related but REST also implies some other architectural contraints, although WADL be very useful in implementing RESTful services. For more info, check older WADL articles, as well as Marc's blog.
|
Marc continues to Improve WADL. The Latest Specification includes a new documentation element and changes to the resource and parameter elements. There is a good overview of the changes in Marc's blog. Marc is working with several groups that publish RESTful services on the web; if you are interested in also exploring the use of WADL please contact him. |
|
WADL is a Web Services Description Language that is targetted at RESTful services. Unlike WSDL, it is quite simple to read, and Marc recently described how Map WADL to Java. In his latest blog he describes several Enhancements to WADL based on feedback and implementation experience. |
Please consider giving feedback to Marc as we would like to provide high-quality support for RESTful services in Project GlassFish.
|
SOAP and RESTful web services both have a role to play in the Web infrastructure. The latest version of JAX-WS has Some Support but it clearly can be improved. Marc has been Exploring REST WS and one of his research directions is WADL that he just published in a Technical Report. Check it out. You can actually read, and even write, the service descriptors. Try that with WSDL! Added: Also check this older Presentation on WADL. |