qt_add_openapi_client
Génère un client HTTP à partir d'une spécification OpenAPI fournie.
La commande est définie dans le composant « OpenApiTools » du paquet « Qt6 ». Chargez le paquet à l'aide de la commande suivante :
find_package(Qt6 REQUIRED COMPONENTS OpenApiTools)Cette commande a été introduite dans Qt 6.11.
Remarque : cette commande est en avant-première technologique et est susceptible d'évoluer dans les prochaines versions.
Synopsis
qt_add_openapi_client(<target>
SPEC_FILE <file>
[OUTPUT_DIRECTORY <dir>]
[ADDITIONAL_PROPERTIES property1=value1 property2=value2 ...]
[GENERATE_OPTIONS generate_option1 generate_option2 ...]
[JAVA_OPTIONS jvm_option1 jvm_option2 ...]
[GENERATE_DOCUMENTATION] # since Qt 6.12
[DOCUMENTATION_OUTPUT_DIRECTORY <dir>] # since Qt 6.12
[OUTPUT_PUBLIC_HEADERS_DIR <dir>]
[OUTPUT_PRIVATE_HEADERS_DIR <dir>]
)Si les commandes sans version sont désactivées, utilisez plutôt qt6_add_openapi_client(). Elle prend en charge le même ensemble d’arguments que cette commande.
Description
La fonction ` qt_add_openapi_client ` appelle le générateur Qt OpenAPI pour un fichier de spécification fourni. La commande génère ainsi les fichiers source correspondants et les ajoute à la liste des sources de la cible. Si la cible n'existe pas, la génération s'arrête et un message d'erreur s'affiche. Pour créer la cible, vous pouvez appeler les fonctions ` qt_add_library ` ou ` qt_add_executable `.
Remarque : seule la génération de code « client » est actuellement prise en charge.
Arguments
SPEC_FILEspécifie un fichier de spécification OpenAPI, obligatoire pour la génération de code. Le fichier doit porter l’extension*.yaml.OUTPUT_DIRECTORYSpécifie le répertoire de sortie du code généré. S'il n'est pas spécifié, le répertoireCMAKE_CURRENT_BINARY_DIRest utilisé.ADDITIONAL_PROPERTIESspécifie des propriétés de configuration supplémentaires pour la commande generate. Elles sont transmises telles quelles à OpenAPI Generator sans validation.GENERATE_OPTIONSSpécifie des options supplémentaires transmises à la commande « generate ».Les arguments
-iet--input-spectransmis viaGENERATE_OPTIONSseront ignorés. Le fichier de spécification OpenAPI est défini exclusivement à l’aide de l’argumentSPEC_FILE.Les arguments
-oet--outputtransmis viaGENERATE_OPTIONSseront ignorés. Le répertoire de sortie est défini exclusivement à l’aide de l’argumentOUTPUT_DIRECTORY.JAVA_OPTIONSSpécifie les options supplémentaires transmises à la JVM lors de l’appel de l’OpenAPI Generator. Utilisez cette option pour configurer le comportement de la JVM. Les options sont transmises telles quelles, sans validation.GENERATE_DOCUMENTATION(depuis Qt 6.12) active la génération de la documentationdoxygenpour les classes générées.DOCUMENTATION_OUTPUT_DIRECTORY(depuis Qt 6.12) spécifie un répertoire dans lequel sera stockée la documentation «doxygen». Cette option ne peut être utilisée qu’en association avec «GENERATE_DOCUMENTATION».OUTPUT_PUBLIC_HEADERS_DIRSpécifie un répertoire dans lequel sera stockée la liste des en-têtes publics générés ; sinon, vous trouverez ces en-têtes dans le fichier `OUTPUT_DIRECTORY`.OUTPUT_PRIVATE_HEADERS_DIRSpécifie un répertoire dans lequel sera stockée la liste des en-têtes privés générés ; sinon, ces en-têtes se trouvent dans le répertoire «OUTPUT_DIRECTORY».
Personnalisation du comportement de génération
Les arguments GENERATE_OPTIONS et ADDITIONAL_PROPERTIES vous permettent de personnaliser le comportement à la fois du générateur OpenAPI en amont et du plugin de génération Qt.
L'exemple ci-dessous montre comment utiliser ces deux arguments conjointement dans votre projet :
qt6_add_openapi_client(ClientExample
SPEC_FILE
${CMAKE_CURRENT_SOURCE_DIR}/example.yaml
ADDITIONAL_PROPERTIES
cppNamespace=ExampleNamespace
modelNamePrefix=Example
GENERATE_OPTIONS
--skip-overwrite
--api-name-suffix MyApiSuffix
)Le comportement et les valeurs prises en charge par les arguments du générateur dépendent de la version installée d’OpenAPI Generator et peuvent varier d’une version à l’autre.
Vous pouvez fournir des propriétés de configuration supplémentaires de deux manières :
- En utilisant l’argument
ADDITIONAL_PROPERTIES. - En passant
-pou--additional-propertiesdans l’argumentGENERATE_OPTIONS.
L'utilisation simultanée de ces deux méthodes peut entraîner des résultats inattendus. Nous vous recommandons de choisir une seule approche.
Remarque : certaines propriétés supplémentaires ont des valeurs fixes qui ne peuvent pas être remplacées. Si vous tentez de les remplacer, vos valeurs seront ignorées. Par exemple, la propriété supplémentaire packageName correspond au paramètre <target> de la fonction et ne peut pas être modifiée.
Personnalisation du comportement de la JVM
L’exemple suivant montre comment augmenter la limite du parseur YAML pour les fichiers de spécification volumineux et réduire la sortie du journal aux seuls avertissements à l’aide de ` JAVA_OPTIONS` :
qt6_add_openapi_client(ClientExample
SPEC_FILE
${CMAKE_CURRENT_SOURCE_DIR}/example.yaml
JAVA_OPTIONS
-DmaxYamlCodePoints=99999999
-Dlog.level=warn
)© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.