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.