About ChazaAPI

ChazaAPI is a Java library designed to streamline the creation of API documentation by automating the generation of clear, human-readable, and machine-processable documentation directly from your source code. Its primary goal is to improve developer productivity by reducing the manual effort required to maintain up-to-date API docs.

The name Chaza means “explain” in Zulu, reflecting the library’s mission to clearly explain your API to its users.

Currently, ChazaAPI supports integration with the Javalin framework, allowing developers to seamlessly document API metadata and endpoints within their existing Javalin applications. Support for additional server frameworks is planned for future releases.


License

ChazaAPI is licensed under the Apache License 2.0. This allows you to freely use, modify, and distribute the software in both open-source and commercial projects, provided you comply with the license terms.


Author

Created by: Sibusiso Buthelezi
GitHub: https://github.com/mabrikado


License Header

/**
 ChazaAPI - A Javalin-based API documentation generator.

 Copyright (c) 2025 Sibusiso Buthelezi

 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 */

Features

  • Annotation-based documentation directly in source code.
  • Supports all REST HTTP methods: GET, POST, PUT, DELETE, PATCH.
  • Role-based access control documentation.
  • Flexible content types (e.g., application/json).
  • Automatic documentation generation during Maven builds.
  • Integration with Javalin (recommended version 6.7.0 or above).
  • Fluent API metadata configuration for clean and readable code.

How It Works

ChazaAPI allows you to annotate your API methods with detailed information including:

  • API metadata like title, version, description, contact, and license.
  • Endpoint specifics such as HTTP method, URL path, request and response fields, status codes, and security roles.

These annotations are processed during your Maven build to generate comprehensive, up-to-date API documentation that can be served via a Javalin server.

Installation

To use ChazaAPI in your Maven project, add the following dependency to your pom.xml:

<dependency>
  <groupId>io.github.mabrikado</groupId>
  <artifactId>ChazaAPI</artifactId>
  <version>1.0.1</version>
</dependency>