Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Spring Boot API GeneratorNew to Visual Studio Code? Get it now.
Spring Boot API Generator

Spring Boot API Generator

arianibrahim

|
3 installs
| (0) | Free
Génère une architecture REST propre à partir de classes d'entités Spring Boot
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Spring Boot API Generator

Une extension VSCode puissante pour générer automatiquement une architecture REST propre à partir de classes d'entités Spring Boot.

🚀 Fonctionnalités

  • Génération automatique : Créez Controller, Service, Repository, DTOs et Mappers en un clic
  • Architecture propre : Suit les meilleures pratiques Spring Boot et les patterns REST
  • Validation intelligente : Détecte les erreurs et suggère des améliorations
  • Configuration flexible : Personnalisez la génération selon vos besoins
  • Support complet des DTOs : Génère des DTOs de création, mise à jour et réponse
  • Mappers automatiques : Conversion automatique entre entités et DTOs
  • Gestion d'erreurs : Validation robuste avec messages d'erreur détaillés

📦 Installation

  1. Ouvrez VSCode
  2. Allez dans Extensions (Ctrl+Shift+X)
  3. Recherchez "Spring Boot API Generator"
  4. Cliquez sur "Installer"

Ou installez depuis le fichier VSIX :

code --install-extension spring-boot-api-generator-1.0.0.vsix

🎯 Utilisation

Méthode 1 : Menu contextuel

  1. Ouvrez un fichier d'entité Java (.java)
  2. Clic droit sur le fichier dans l'explorateur
  3. Sélectionnez "Générer API depuis Entité"

Méthode 2 : Éditeur

  1. Ouvrez un fichier d'entité Java
  2. Clic droit dans l'éditeur
  3. Sélectionnez "Générer API REST"

Méthode 3 : Palette de commandes

  1. Ouvrez la palette (Ctrl+Shift+P)
  2. Tapez "Spring API Generator"
  3. Sélectionnez la commande appropriée

📋 Exemple d'utilisation

Supposons que vous ayez cette entité :

package com.example.model;

import jakarta.persistence.*;
import java.time.LocalDateTime;

@Entity
@Table(name = "users")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false, length = 100)
    private String firstName;
    
    @Column(nullable = false, length = 100)
    private String lastName;
    
    @Column(nullable = false, unique = true, length = 255)
    private String email;
    
    @Column(name = "created_at")
    private LocalDateTime createdAt;
    
    @Column(name = "updated_at")
    private LocalDateTime updatedAt;
    
    // Constructeurs, getters et setters...
}

L'extension générera automatiquement :

1. UserController.java

@RestController
@RequestMapping("/api/v1/users")
@CrossOrigin(origins = "*")
public class UserController {
    
    @Autowired
    private UserService userService;
    
    @GetMapping
    public ResponseEntity<Page<UserResponse>> getAllUsers(Pageable pageable) {
        // Implémentation...
    }
    
    @GetMapping("/{id}")
    public ResponseEntity<UserResponse> getUserById(@PathVariable Long id) {
        // Implémentation...
    }
    
    @PostMapping
    public ResponseEntity<UserResponse> createUser(@Valid @RequestBody CreateUserRequest request) {
        // Implémentation...
    }
    
    @PutMapping("/{id}")
    public ResponseEntity<UserResponse> updateUser(@PathVariable Long id, @Valid @RequestBody UpdateUserRequest request) {
        // Implémentation...
    }
    
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        // Implémentation...
    }
}

2. UserService.java

Service avec logique métier complète

3. UserRepository.java

Repository avec méthodes de recherche personnalisées

4. DTOs (CreateUserRequest, UpdateUserRequest, UserResponse)

DTOs avec validation automatique et annotations Lombok (@Data, @Builder)

5. UserMapper.java

Mapper pour la conversion entité ↔ DTO

⚙️ Configuration

Accédez aux paramètres via Fichier > Préférences > Paramètres et recherchez "Spring API Generator".

Paramètres disponibles

Paramètre Type Défaut Description
springApiGenerator.basePackage string com.example Package de base pour les classes générées
springApiGenerator.generateDto boolean true Générer les classes DTO
springApiGenerator.generateMapper boolean true Générer les classes Mapper
springApiGenerator.useValidation boolean true Inclure les annotations de validation
springApiGenerator.apiVersion string v1 Version de l'API pour les endpoints

Configuration dans settings.json

{
  "springApiGenerator.basePackage": "com.monprojet",
  "springApiGenerator.generateDto": true,
  "springApiGenerator.generateMapper": true,
  "springApiGenerator.useValidation": true,
  "springApiGenerator.apiVersion": "v2"
}

🏗️ Architecture générée

L'extension suit une architecture en couches propre :

src/main/java/com/example/
├── controller/          # Contrôleurs REST
│   └── UserController.java
├── service/            # Services métier
│   └── UserService.java
├── repository/         # Repositories JPA
│   └── UserRepository.java
├── dto/               # Data Transfer Objects
│   ├── CreateUserRequest.java
│   ├── UpdateUserRequest.java
│   └── UserResponse.java
└── mapper/            # Mappers entité ↔ DTO
    └── UserMapper.java

🔍 Validation automatique

L'extension valide automatiquement vos entités et vous alerte en cas de :

Erreurs (bloquantes)

  • Absence d'annotation @Entity
  • Absence de champ ID
  • Nom de classe ou champs invalides

Avertissements (non-bloquants)

  • Conventions de nommage non respectées
  • Imports manquants potentiels
  • Bonnes pratiques non suivies
  • Champs d'audit manquants

🎨 Fonctionnalités avancées

DTOs avec validation et Lombok

  • Annotations de validation automatiques (@NotNull, @NotBlank, @Size, etc.)
  • Annotations Lombok (@Data, @Builder, @NoArgsConstructor, @AllArgsConstructor)
  • Pas de getters/setters manuels - code plus propre et maintenable
  • Validation d'email pour les champs contenant "email"
  • Validation de nombres positifs pour prix/montants
  • Support du pattern Builder pour une création fluide

Repository enrichi

  • Méthodes de recherche basées sur les champs
  • Requêtes JPQL personnalisées
  • Méthodes de tri et comptage

Service complet

  • Gestion des transactions
  • Méthodes CRUD complètes
  • Recherche et pagination
  • Gestion d'erreurs

Mappers intelligents

  • Conversion bidirectionnelle entité ↔ DTO
  • Mise à jour partielle
  • Gestion des listes
  • Copie de propriétés non-nulles

🚨 Gestion des conflits

Quand un fichier existe déjà, l'extension propose :

  • Remplacer : Écrase le fichier existant
  • Ignorer : Conserve le fichier existant
  • Renommer : Crée un nouveau fichier avec un suffixe

🐛 Dépannage

L'entité n'est pas reconnue

  • Vérifiez que la classe a l'annotation @Entity
  • Assurez-vous que le fichier est valide syntaxiquement
  • Vérifiez que vous êtes dans un projet Java

Erreur de génération

  • Vérifiez les permissions d'écriture
  • Assurez-vous que le workspace est ouvert
  • Consultez la console de développement (F12)

Performance lente

  • Fermez les fichiers inutiles
  • Redémarrez VSCode si nécessaire

🤝 Contribution

  1. Forkez le projet
  2. Créez une branche pour votre fonctionnalité
  3. Committez vos changements
  4. Poussez vers la branche
  5. Ouvrez une Pull Request

📝 Roadmap

  • [ ] Support pour d'autres frameworks (Quarkus, Micronaut)
  • [ ] Génération de tests unitaires
  • [ ] Support OpenAPI/Swagger
  • [ ] Templates personnalisables
  • [ ] Support GraphQL
  • [ ] Intégration avec Spring Security

📄 Licence

MIT License

🙏 Remerciements

  • Équipe Spring Boot pour l'excellent framework
  • Communauté VSCode pour les outils de développement
  • Contributeurs et utilisateurs de l'extension

Développé avec ❤️ pour la communauté Spring Boot

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft