Générateur d'API Java avec architecture hexagonale - De l'idée au code en quelques clics
Un outil de génération de code intelligent qui transforme vos définitions d'entités en une architecture hexagonale Java complète et prête à l'emploi. Conçu pour accélérer le développement et garantir les bonnes pratiques architecturales.
- ⚡ Gain de temps : Générez en quelques minutes ce qui prendrait des heures à coder manuellement
- 🏗️ Architecture solide : Respect automatique des principes de l'architecture hexagonale
- 🎨 Interface intuitive : Définissez vos entités sans écrire une ligne de code
- 📋 Code de qualité : Génération avec Javadoc, annotations et bonnes pratiques
- 🔧 Prêt à l'emploi : Architecture complète directement utilisable
- 🎯 Éditeur visuel d'entités avec validation en temps réel
- 📊 Gestion des relations entre entités (OneToMany, ManyToOne, etc.)
- 🎨 Interface moderne et intuitive
- 📦 Entities : Classes métier avec annotations JPA et validation
- 🔄 Mappers : Transformation automatique entre couches
- 🌐 Controllers : API REST avec documentation OpenAPI
- 🔌 Adapters : Implémentations des ports secondaires
- 📚 Ports : Interfaces de l'architecture hexagonale
- 🧪 Tests : Tests unitaires et d'intégration générés
- Python 3.8+
- Java 11+ (pour le code généré)
# 1. Cloner le projet
git clone https://github.com/Bertrand2808/Hexapi.git
cd Hexapi
# 2. Configurer l'environnement Python
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# ou
.\.venv\Scripts\activate # Windows
# 3. Installer les dépendances
pip install -r requirements.txt
# 4. Lancer l'application
python main.py- Définir vos entités : Utilisez l'interface graphique pour créer vos entités métier
- Configurer les relations : Définissez les liens entre vos entités
- Générer le code : Cliquez sur "Générer" pour créer votre architecture
- Récupérer le projet : Votre API Java est prête dans le dossier
output/
votre-api/
├── src/main/java/
│ ├── domain/
│ │ ├── entities/ # Entités métier
│ │ └── ports/ # Interfaces (ports)
│ ├── infrastructure/
│ │ ├── adapters/ # Implémentations
│ │ ├── controllers/ # API REST
│ │ └── mappers/ # Transformations
│ └── application/
│ └── services/ # Services métier
├── src/test/java/ # Tests générés
└── pom.xml # Configuration Maven
hexapi/
├── generator/ # Moteur de génération
│ ├── gui/ # Interface graphique (Tkinter)
│ ├── templates/ # Templates Jinja2
│ ├── models/ # Modèles de données
│ └── utils/ # Utilitaires
├── output/ # Projets générés
├── tests/ # Tests du générateur
└── docs/ # Documentation
python setup.py build# Tests unitaires
python -m pytest
# Analyse de code
python -m flake8 generator/Le générateur supporte plusieurs options de configuration :
- Framework : Spring Boot (par défaut)
- Base de données : H2, PostgreSQL, MySQL
- Build tool : Maven, Gradle
- Version Java : 11, 17, 21
Créez une entité User avec les champs name, email, et le générateur produira automatiquement :
User.java(entité JPA)UserController.java(API REST)UserService.java(logique métier)UserRepository.java(accès données)UserMapper.java(transformations)- Tests unitaires associés
Les contributions sont les bienvenues !
- Fork le projet
- Créez votre branche (
git checkout -b feature/amazing-feature) - Committez vos changements (
git commit -m 'Add amazing feature') - Push sur la branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
Ce projet est sous licence Apache 2.0. Voir le fichier Licence pour plus de détails.
Bertrand2808 - Créateur et mainteneur - GitHub
- Inspiré par les principes de l'architecture hexagonale d'Alistair Cockburn
- Communauté Spring Boot pour les bonnes pratiques
- Tous les contributeurs qui ont participé au projet




