Skip to content
Ryan Heaton edited this page May 18, 2016 · 13 revisions
Clone this wiki locally

Enunciate is an engine for 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, iOS, Ruby, JavaScript, GWT, etc.) for developers who want to use your API.
  • Interface Definition Documents (e.g. WSDL, WADL, XML-Schema, etc.)
  • Etc.

Note 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 the underlying Web service framework can do its job processing your Web service requests.

Use Cases

Consider some of these successful applications of Enunciate:

  • Development of a microservice architecture, where documentation is updated (including fully-up-to-date client libraries) as part of the build process.
  • Mobile application development where the Web service API is invoked via Enunciate-generated iOS, Android, and C# libraries.

Getting Started

There is a getting started guide and sample application available that 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. If you're a "show me" kind of a learner, Enunciate has example applications that you can clone from Github. The sample applications are kept up-to-date and validated as part of the Enunciate release process.

Once you've got some momentum, you'll probably find the user guide and module documentation useful to refer to Enunciate's configuration options. You might also find the Enunciate Specific Annotations useful to provide custom metadata to the generated documentation. If you get stuck, check out the FAQ or raise an issue in the issue tracker. And if you need some extra help, consider asking about commercial support.

If you are migrating from Enunciate 1 to Enunciate 2, take note of the Migration Guide.


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. Comments, enhancements or bug fixes to the project are welcome.