WADL (Web Application Description Language) - Call for Contributors for Open Source CodePlex Project

For those who use Windows Communication Foundation extensively know that unlike SOAP based services, there is a lack of REST services contractual support in WCF. In lieu of this need, I have started this project, WADL on CodePlex, to build a tool which generates code for RESTFul
Web services and RESTFul Web service clients from WADL contract files.

With YABE and everything else going on, I think I would need some significant help from open source volunteers and contributing developers looking forward to work in the area of REST interoperability. Interested? email me or contact via codeplex.

The intent of this project is to for .wadl, do exactly what WSDL does for SOAP based services. Further details about WADL file format are as follows.

.wadl file is an XML document written in an XML grammar called Web
Application Description Language (WADL). This file defines how an REST
based Web service behaves and instructs clients as to how to interact
with the service. When you use Wadl.exe to create a proxy class, a
single source file is created in the programming language that you
specify. In the process of generating the source code for the proxy
class, the tool determines the best type to use for objects specified
in the service description.

wadl: Web Application Description Language (WADL) - Specification ...
Web Application Description Language (WADL) https://wadl.dev.java.net/wadl20061109.pdf


WADL specification (PDF) and WADL schema describe the features of the
language in detail but a few points are worth highlighting: [1]

  • Generative URIs are handled by including support for parameterization of URI components.
  • The
    base set of HTTP methods (GET, POST, PUT, DELETE, HEAD) are
    specifically supported by the WADL schema but the method enumeration is
    open to use with other methods such as those specified by WebDAV.
  • Representation
    parameters are hints to processors that point out interesting parts of
    a resource representation. As such they may be used or ignored as
    desired. I think they'll be useful for RPC-like interactions but less
    so for more document oriented work.
  • Sibling representation elements
    represent alternative representations of the same resource. This means
    you can describe a resource that is offered in alternate formats, e.g.
    XML or HTML.
  • The design center is XML/HTTP but this doesn't
    preclude use with alternate representation formats: the
    representation/@mediaType attribute provides the necessary hook.

[1] http://weblogs.java.net/blog/mhadley/archive/2005/05/introducing_wad.html