Enterprise Integration Zone is brought to you in partnership with:

Ryan Heaton is an engineer, architect, and consultant specializing the Web service design and development. Ryan has architected a wide variety of successful Web service applications and frameworks. One of his projects, Enunciate, has been released as a popular open-source Web service development framework. He has performed technical interviews for scores of candidates probing all aspects of Web service design and implementation. Ryan is a DZone MVB and is not an employee of DZone and has posted 9 posts at DZone. View Full User Profile

Enunciate Your Web Service API

  • submit to reddit

Enunciate is an engine for building a rich Web service API, released open-source under the Apache 2 license. The concept is pretty simple: write your service interfaces, apply some JAX-WS and/or JAX-RS metadata, and invoke Enunciate via your favorite build tool (Maven, Ant, etc.). Enunciate will package up a war file for you that you can deploy in your favorite J2EE container.

Note the refreshing lack of deployment descriptors and configuration files. Enunciate also puts some effort into validating your service endpoints at compile-time, so you don't have to wait until your application is running to find out that you've got your annotations wrong or something like that.

When you deploy your web application, you'll have your service endpoints mounted and functioning as expected, but you'll also quickly see that Enunciate has done some extra work to enrich your Web service API:

  • Full User Documentation
    Enunciate will generate nice HTML documentation for your Web service API, scraped from the JavaDocs.
  • Client-Side Code
    The documentation will have links to download client-side code that Enunciate generated to be able to invoke your service operations via the Web service API.
  • WSDLs, Schemas, etc.
    The WSDLs and Schemas were generated by Enunciate from the source code, so they're consolidated, well-formatted, and documented.

Enunciate provides a large set of other features that can be leveraged to enhance your Web service API such as GWT endpoints and client-side code, AMF endpoints and client-side ActionScript code, Web service security, etc. Enabling these is just a matter of passing a few configuration options.

To learn more, take a look at the project homepage. Take a walk through the getting started guide to see Enunciate in action. Check out some sample code to see it working on your own box.


Published at DZone with permission of Ryan Heaton, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)