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.
| Module | Description | Use Case |
|---|---|---|
| BOM | Bill of Materials | Dependency version management |
| Core | CRUD, auditing, caching | Base entity operations |
| Security | JWT, OAuth2, auth | Authentication & authorization |
| Exceptions | RFC 7807 errors | Standardized error handling |
Dependency Graph
Generators (generator/)
Tools for generating API code from schemas.
| Module | Description | Interface |
|---|---|---|
| Codegen | Multi-language generation engine | Library |
| Server | REST API for generation | HTTP |
| CLI | Command-line interface | Terminal |
| IDE Plugins | IntelliJ, VS Code | IDE |
Generation Flow
Features (features/)
Advanced functionality modules that extend core capabilities.
Communication Protocols
| Module | Description | Status |
|---|---|---|
| GraphQL | GraphQL layer over REST | ✅ Stable |
| gRPC | High-performance RPC | ✅ Stable |
| Gateway | API Gateway (Spring Cloud) | ✅ Stable |
| BFF | Backend For Frontend | ✅ Stable |
Data & Search
| Module | Description | Status |
|---|---|---|
| Search | Elasticsearch, Algolia, Meilisearch | ✅ Stable |
| Graph | Neo4j, Neptune, ArangoDB | ✅ Stable |
Analytics & Intelligence
| Module | Description | Status |
|---|---|---|
| Analytics | GA, Mixpanel, Segment | ✅ Stable |
| Recommendation | ML-based recommendations | 🚧 Beta |
Operations
| Module | Description | Status |
|---|---|---|
| Notifications | Email, SMS, Push | ✅ Stable |
| Docs | API documentation | ✅ Stable |
| Chaos | Chaos engineering | 🚧 Beta |
MCP (mcp/)
Model Context Protocol servers for AI-assisted development.
| Module | Description | Integration |
|---|---|---|
| Java MCP | Native Java server | Direct codegen integration |
| Python MCP | Python wrapper | CLI 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'Full-Featured API
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