Aller au contenu principal

🚀 Comment dĂ©marrer

Ce plugin peut ĂȘtre utilisĂ© de deux maniĂšres diffĂ©rentes, selon vos besoins :

Mode ligne de commande : La façon la plus rapide de dĂ©couvrir ce plugin est de l’invoquer directement depuis la ligne de commande.
Ce mode est idĂ©al pour tester rapidement si le plugin s’intĂšgre correctement Ă  votre projet. Il n’offre cependant que des possibilitĂ©s limitĂ©es de configuration. Pour une personnalisation complĂšte et une utilisation plus fluide, il est recommandĂ© de configurer le plugin directement dans votre pom.xml.

Configuration via le pom.xml : DĂ©finir le plugin directement dans votre pom.xml est l’approche la plus courante et la plus pratique pour une utilisation quotidienne. Cette mĂ©thode offre un ensemble complet d’options de configuration, ce qui facilite l’adaptation du plugin aux besoins de votre projet.


⚡ Ligne de commande​

La façon la plus rapide de gĂ©nĂ©rer une documentation est d’invoquer directement le plugin via la ligne de commande :

mvn clean compile io.github.kbuntrock:openapi-maven-plugin:0.0.26:documentation \
"-Dmaven.compiler.parameters=true" \
"-Dopenapi.library=SPRING_MVC" \
"-Dopenapi.tagAnnotations=RequestMapping" \
"-Dopenapi.locations=your.base.package"

🔎 DĂ©composition de la commande :

  • clean compile "-Dmaven.compiler.parameters=true":
    Nettoie les sorties de build précédentes et recompile le projet en conservant les noms des paramÚtres (nécessaire pour la réflexion).
  • -Dopenapi.library=SPRING_MVC:
    Spécifie le framework que vous utilisez. Valeurs possibles :
    • SPRING_MVC (par dĂ©faut)
    • JAKARTA_RS
    • JAVAX_RS
  • -Dopenapi.locations=your.base.package:
    Définit les packages à scanner pour détecter les endpoints REST.
    • Obligatoire pour des raisons de performance.
    • Plusieurs packages peuvent ĂȘtre fournis, sĂ©parĂ©s par des virgules (ex. -Dopenapi.locations=pkgone,pkgtwo).
  • -Dopenapi.tagAnnotations=RequestMapping:
    SpĂ©cifie quelle annotation doit ĂȘtre utilisĂ©e pour dĂ©tecter les endpoints. Cette propriĂ©tĂ© peut ĂȘtre omise si vous n’utilisez pas Spring.
    Valeurs possibles :
    • RestController (par dĂ©faut)
    • RequestMapping
astuce

Une liste détaillée des paramÚtres disponibles est documentée ici

attention

Le mode ligne de commande est idĂ©al pour tester rapidement si le plugin s’intĂšgre correctement Ă  votre projet. Cependant, il offre des possibilitĂ©s de configuration limitĂ©es. Pour une personnalisation complĂšte et un usage simplifiĂ©, il est recommandĂ© de configurer le plugin directement dans votre pom.xml (voir la section suivante).


🍏 Configuration de votre pom.xml​

Pour commencer, il est nécessaire de configurer votre build Maven afin de conserver les noms des paramÚtres des méthodes Java.
Sans cette étape, les paramÚtres apparaßtront dans la documentation sous forme de arg0, arg1, etc.


  1. Activer la conservation des noms de paramĂštres lors de la compilation

Ajoutez la configuration suivante au plugin maven-compiler-plugin dans la section <plugins> de votre:

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<!-- Potentiellement à adapter pour rester sur la version déjà utilisée par votre projet -->
<version>3.14.0</version>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>

  1. Configurer l'OpenAPI Maven Plugin

Ensuite, ajoutez le plugin openapi-maven-plugin à votre pom.xml et adaptez la configuration en fonction de vos besoins (consultez la documentation détaillée pour voir toutes les options disponibles):


<!-- Déclaration du plugin -->
<plugin>
<groupId>io.github.kbuntrock</groupId>
<artifactId>openapi-maven-plugin</artifactId>
<version>0.0.26</version>
<executions>
<execution>
<id>documentation</id>
<goals>
<goal>documentation</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Cette section dĂ©fini des configurations 'gĂ©nĂ©rales', qui peuvent ĂȘtre surchargĂ©es pour chaque document gĂ©nĂ©rĂ©. -->
<apiConfiguration>
<library>SPRING_MVC</library> <!-- Valeur par dĂ©faut, la balise peut ĂȘtre supprimĂ©e en l'Ă©tat -->
<tagAnnotations> <!-- Balise uniquement utile pour Spring MVC -->
<!-- RestController est la valeur par dĂ©faut mais peut ĂȘtre remplacĂ©e par RequestMapping -->
<annotation>RestController</annotation>
</tagAnnotations>
</apiConfiguration>
<!-- Cette section indique quels sont les rĂ©pertoires dans lesquelles les fichiers de code sources devront ĂȘtre lus afin d'en extraire la javadoc -->
<javadocConfiguration>
<scanLocations>
<!-- D'autres balises 'location' peuvent ĂȘtre ajoutĂ©es afin de rĂ©fĂ©rencer de la javadoc prĂ©sente dans d'autres modules. -->
<!-- Le chemin est relatif au répertoire du projet. -->
<location>src/main/java</location>
</scanLocations>
</javadocConfiguration>
<!-- Cette section définie enfin une liste de documents à générer. Dans cet exemple, un seul est généré, avec la configuration par défaut. -->
<apis>
<api>
<!-- Pour chaque api (= document) généré, on indique quels sont les packages / noms de classe complets à scanner -->
<locations>
<!-- Remplacer ici le nom de package pour correspondre Ă  votre projet. -->
<location>io.github.kbuntrock.sample.endpoint</location>
</locations>
</api>
</apis>
</configuration>
</plugin>

  1. Générer la documentation

Exécutez la commande suivante : mvn compile
La spécification OpenAPI sera générée dans le fichier : target/spec-open-api.yml

Si vous lancez ensuite la phase install : mvn install
La spécification générée sera également installée dans votre dépÎt Maven local comme un artefact, avec un classifier basé sur le nom de fichier.