qt_add_openapi_client
Erzeugt einen HTTP-Client unter Verwendung einer bereitgestellten OpenAPI-Spezifikation.
Der Befehl ist in der OpenApiTools Komponente des Qt6 Pakets definiert. Laden Sie das Paket mit:
find_package(Qt6 REQUIRED COMPONENTS OpenApiTools)
Dieser Befehl wurde in Qt 6.11 eingeführt.
Hinweis: Dieser Befehl ist eine Technologievorschau und kann sich in zukünftigen Versionen ändern.
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] [DOCUMENTATION_OUTPUT_DIRECTORY <dir>] [OUTPUT_PUBLIC_HEADERS_DIR <dir>] [OUTPUT_PRIVATE_HEADERS_DIR <dir>] )
Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_add_openapi_client(). Er unterstützt die gleichen Argumente wie dieser Befehl.
Beschreibung
Die Funktion qt_add_openapi_client ruft den Qt OpenAPI Generator für eine angegebene Spezifikationsdatei auf. Als Ergebnis generiert der Befehl den Bereich der Quelldateien und fügt sie der Liste der Zielquellen hinzu. Existiert das Ziel nicht, wird die Generierung mit einer Fehlermeldung abgebrochen. Zur Erstellung des Ziels können Sie die Funktionen qt_add_library oder qt_add_executable aufrufen.
Hinweis: Derzeit wird nur die Codegenerierung von client unterstützt.
Argumente
SPEC_FILEgibt eine OpenAPI-Spezifikationsdatei an, die für die Codegenerierung zwingend erforderlich ist. Die Datei sollte eine*.yamlErweiterung haben.OUTPUT_DIRECTORYspezifiziert das Ausgabeverzeichnis für den generierten Code. Wenn nicht angegeben, wirdCMAKE_CURRENT_BINARY_DIRverwendet.ADDITIONAL_PROPERTIESspezifiziert zusätzliche Konfigurationseigenschaften für den generate-Befehl. Sie werden ohne Überprüfung an den OpenAPI Generator weitergegeben.GENERATE_OPTIONSgibt zusätzliche Optionen an, die an den Generierungsbefehl übergeben werden.Die Argumente
-iund--input-spec, die überGENERATE_OPTIONSübergeben werden, werden ignoriert. Die OpenAPI-Spezifikationsdatei wird ausschließlich mit dem ArgumentSPEC_FILEfestgelegt.Die Argumente
-ound--output, die überGENERATE_OPTIONSübergeben werden, werden ignoriert. Das Ausgabeverzeichnis wird ausschließlich über das ArgumentOUTPUT_DIRECTORYfestgelegt.JAVA_OPTIONSspezifiziert zusätzliche Optionen, die an die JVM übergeben werden, wenn der OpenAPI-Generator aufgerufen wird. Verwenden Sie dies, um das Verhalten der JVM zu konfigurieren. Die Optionen werden ohne Validierung übergeben.GENERATE_DOCUMENTATIONermöglicht die Generierung vondoxygenDokumentation für generierte Klassen.DOCUMENTATION_OUTPUT_DIRECTORYspezifiziert ein Verzeichnis, in dem diedoxygenDokumentation gespeichert wird. Die Option kann nur zusammen mitGENERATE_DOCUMENTATIONverwendet werden.OUTPUT_PUBLIC_HEADERS_DIRgibt ein Verzeichnis an, in dem die Liste der generierten öffentlichen Kopfzeilen gespeichert wird, andernfalls können Sie die Kopfzeilen inOUTPUT_DIRECTORYfinden.OUTPUT_PRIVATE_HEADERS_DIRgibt ein Verzeichnis an, in dem die Liste der generierten privaten Header gespeichert wird; andernfalls finden Sie die Header im VerzeichnisOUTPUT_DIRECTORY.
Anpassen des Generierungsverhaltens
Mit den Argumenten GENERATE_OPTIONS und ADDITIONAL_PROPERTIES können Sie das Verhalten des Upstream-OpenAPI-Generators und des Qt-Generator-Plugins anpassen.
Das folgende Beispiel zeigt, wie Sie beide Argumente zusammen in Ihrem Projekt verwenden können:
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
)Das Verhalten und die unterstützten Werte der Generator-Argumente hängen von der installierten OpenAPI-Generator-Version ab und können sich zwischen den Versionen ändern.
Sie können zusätzliche Konfigurationseigenschaften auf zwei Arten bereitstellen:
- Verwendung des Arguments
ADDITIONAL_PROPERTIES. - Übergabe von
-poder--additional-propertiesim ArgumentGENERATE_OPTIONS.
Die gleichzeitige Verwendung beider Möglichkeiten kann zu unerwarteten Ergebnissen führen. Wir empfehlen, einen Ansatz zu wählen.
Hinweis: Einige zusätzliche Eigenschaften haben feste Werte, die nicht außer Kraft gesetzt werden können. Wenn Sie versuchen, sie zu überschreiben, werden Ihre Werte ignoriert. Die zusätzliche Eigenschaft packageName entspricht beispielsweise dem Parameter <target> der Funktion und kann nicht geändert werden.
Anpassen des JVM-Verhaltens
Das folgende Beispiel zeigt, wie Sie mit JAVA_OPTIONS das YAML-Parserlimit für große Spezifikationsdateien erhöhen und die Protokollausgabe auf Warnungen beschränken können:
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.