Skip to content

Module Overview

APiGen is organized into four main pillars, each with a specific purpose.

Architecture

apigen/
├── libs/           # Core reusable libraries
├── generator/      # Code generation tools
├── features/       # Advanced functionality modules
└── mcp/            # AI integration (Model Context Protocol)

Core Libraries (libs/)

Foundation libraries that provide base functionality.

ModuleDescriptionUse Case
BOMBill of MaterialsDependency version management
CoreCRUD, auditing, cachingBase entity operations
SecurityJWT, OAuth2, authAuthentication & authorization
ExceptionsRFC 7807 errorsStandardized error handling

Dependency Graph

Generators (generator/)

Tools for generating API code from schemas.

ModuleDescriptionInterface
CodegenMulti-language generation engineLibrary
ServerREST API for generationHTTP
CLICommand-line interfaceTerminal
IDE PluginsIntelliJ, VS CodeIDE

Generation Flow

Features (features/)

Advanced functionality modules that extend core capabilities.

Communication Protocols

ModuleDescriptionStatus
GraphQLGraphQL layer over REST✅ Stable
gRPCHigh-performance RPC✅ Stable
GatewayAPI Gateway (Spring Cloud)✅ Stable
BFFBackend For Frontend✅ Stable
ModuleDescriptionStatus
SearchElasticsearch, Algolia, Meilisearch✅ Stable
GraphNeo4j, Neptune, ArangoDB✅ Stable

Analytics & Intelligence

ModuleDescriptionStatus
AnalyticsGA, Mixpanel, Segment✅ Stable
RecommendationML-based recommendations🚧 Beta

Operations

ModuleDescriptionStatus
NotificationsEmail, SMS, Push✅ Stable
DocsAPI documentation✅ Stable
ChaosChaos engineering🚧 Beta

MCP (mcp/)

Model Context Protocol servers for AI-assisted development.

ModuleDescriptionIntegration
Java MCPNative Java serverDirect codegen integration
Python MCPPython wrapperCLI subprocess

MCP Architecture

Module Dependencies

gradle
// Using BOM for version management
implementation platform('com.jnzader:apigen-bom:1.0.0-SNAPSHOT')

// Core modules (no version needed with BOM)
implementation 'com.jnzader:apigen-core'
implementation 'com.jnzader:apigen-security'

// Feature modules
implementation 'com.jnzader:apigen-graphql'
implementation 'com.jnzader:apigen-search'

Choosing Modules

Minimal Setup (REST API only)

gradle
implementation 'com.jnzader:apigen-core'

With Security

gradle
implementation 'com.jnzader:apigen-core'
implementation 'com.jnzader:apigen-security'
gradle
implementation platform('com.jnzader:apigen-bom:1.0.0-SNAPSHOT')
implementation 'com.jnzader:apigen-core'
implementation 'com.jnzader:apigen-security'
implementation 'com.jnzader:apigen-graphql'
implementation 'com.jnzader:apigen-search'
implementation 'com.jnzader:apigen-analytics'

Code Generation Only

bash
# Use CLI - no dependencies needed
./gradlew :generator:cli:run --args="generate ..."

# Or use server
./gradlew :generator:server:bootRun

Released under the MIT License.