Skip to content
Ryan Heaton edited this page Sep 17, 2015 · 13 revisions

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, Flex, AJAX, 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.

Enunciate 2

Enunciate 1

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

To start, select which version of Enunciate you want to use:

  • Enunciate 1.x is currently available as a full release, but it currently only works on Java version 7 and older.
  • Enunciate 2.x is available as a pre-release and works with Java version 6 and newer (including Java 8). It is anticipated that Enunciate version 2.0.0 will be cut in the next few weeks.

Enunciate 2 Enunciate 1

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

There is a getting started guide available for both Enunciate 1 and Enunciate 2 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 some example applications for both Enunciate 1 and Enunciate 2 that you can clone from Github and are run 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. 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.

About

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.

Clone this wiki locally