articulate your web api.

Enunciate 1.29 Released!

Enunciate 1.29 is a primarily a maintenance release, but also includes XML support for the PHP client-side classes.

Click here to download.

The Basics

Enunciate is an engine for dramatically enhancing your Java Web service API.

It's simple. You develop your Web service API using standard Java technologies and attach Enunciate to your build process. Suddenly, your Web service API is boasting some pretty impressive features:

  • Full HTML documentation of your services, scraped from your JavaDocs.
  • Client-side libraries (e.g. Java, .NET, iPhone, Ruby, Flex, AJAX, GWT, etc.) for developers who want to interface with your API.
  • Interface Definition Documents (e.g. WSDL, WADL, XML-Schema, etc.)
  • Etc.

Notice that the runtime of your application isn't affected. Enunciate is primarily a build-time tool; it's intent is to "get out of the way" so Jersey or Metro or CXF or JBoss-WS can do their job processing your Web service requests. Of course, if you'd like to take advantage of Enunciate's support for your runtime container, you may enjoy some other features.

Some Use Cases

Consider some of these successful applications of Enunciate:

  • Development of a Web service API, where documentation is updated (including fully-up-to-date client libraries) as part of the build process.
  • iPhone/iPad application development where the Web service API is invoked via Enunciate-generated Objective-C libraries.
  • AJAX application development via GWT where the Web service API is invoked via Enunciate-generated GWT libraries which include GWT-RPC invocations or even Enunciate-generated JSON overlays via REST/JSON invocation.
  • Flex application development where the Web service API is invoked via Enunciate-generated ActionScript libraries.

Getting Started

You may want to start with the getting started guide, which will walk you through the development of a basic Web service API. To integrate Enunciate into your existing project, take a look at the ways to attach Enunciate to your build process and take note of this document if you only want to leverage Enunciate's documentation and client-side library capabilities.

If you're a "show me" kind of a learner, Enunciate has some example applications that you can clone from Github that are run and validated as part of the Enunciate release process. You can also browse some tutorials for integrating Enunciate with your favorite framework.

Once you've got some momentum, you'll probably find the user guide and module documentation useful to refer to Enunciate's configuration options. And if you get stuck, check out the FAQ or post your question to the mailing lists. And if you need some extra help, consider asking about commercial support.


Enunciate is an open-source project, licenced under the Apache License, version 2.0. It was designed and built by Ryan Heaton, working for familysearch.org. Comments, enhancements or bug fixes to the project are welcome.

Flattr this