Qt OpenAPI
Das Qt-OpenAPI-Modul bietet Funktionen zur Generierung von Qt-HTTP-Clients unter Verwendung von RESTful-APIs von Qt Network. Die wichtigsten Funktionen des Moduls sind der Qt-OpenAPI-Generator und die vorgenerierte Bibliothek „ OpenApiCommon “.
Der Qt-OpenAPI-Generator ist ein Plugin für den OpenAPI-Generator. Er ermöglicht es Ihnen, Qt-HTTP-Clients in C++ automatisch zu generieren, unter Verwendung von Qt Network APIs wie QRestAccessManager.
Hinweis: Der Qt-OpenAPI-Generator verwendet die OpenAPI -Spezifikation 3.1.1 als Referenz. Dies wirkt sich auf Funktionen wie Operationsparameter und nullfähige Modelleigenschaften aus.
Hinweis: Qt OpenAPI in Version 6.12 befindet sich in der Technology Preview, wodurch seine API von den Kompatibilitätszusagen von Qt ausgenommen ist.
Verwendung des Moduls
Zur Nutzung des Qt-OpenAPI-Moduls ist die Installation der folgenden Pakete erforderlich:
- OpenAPI-Generator (Version 7.18.0 oder höher wird empfohlen).
- Maven-Plugin (Version 3.0 oder höher wird empfohlen).
- Java JDK (Version 17 oder höher wird empfohlen).
/note Der vom Qt OpenAPI-Generator erzeugte Code kann je nach Version variieren, da er von der jeweils verwendeten Version des Upstream-OpenAPI-Generators abhängt. Ältere Generatorversionen unterstützen möglicherweise einige der Funktionen nicht.
Sobald Sie die erforderlichen Installationen vorgenommen haben, ist der Qt-OpenAPI-Generator für die Verwendung in Ihren Projekten bereit. Um mit dem Qt-OpenAPI-Generator Client-Code aus einer OpenAPI-Spezifikation zu generieren, rufen Sie die Funktion `qt_add_openapi_client` in der Datei `CMakeLists.txt` Ihres Projekts auf. Weitere Informationen finden Sie unter „Erstellen mit CMake “.
Erstellen mit CMake
Verwendung der Funktion „ qt_add_openapi_client “
Verwenden Sie den Befehl „ find_package() “, um die benötigten Modulkomponenten im Qt6-Paket zu finden. Rufen Sie anschließend die Funktion „qt_add_openapi_client“ auf, um die erforderliche Qt-HTTP-Client-Bibliothek zu generieren. Das vollständige CMake-Code-Beispiel finden Sie unten:
cmake_minimum_required(VERSION 3.22)
project(openapiApplication LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Core OpenApiCommon OpenApiTools)
qt_add_executable(openapiApplication
main.cpp
)
qt_add_library(generatedLibrary)
qt_add_openapi_client(generatedLibrary
SPEC_FILE
${CMAKE_CURRENT_SOURCE_DIR}/spec.yaml
)
target_link_libraries(openapiApplication PRIVATE Qt6::Core generatedLibrary)
include(GNUInstallDirs)
install(TARGETS openapiApplication
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)Hinweis: Die Bibliothek„ OpenApiTools “ muss nicht mit dem resultierenden Ziel „ openapiApplication “ verknüpft werden. Sie ist jedoch weiterhin erforderlich, um die CMake-Funktion „qt_add_openapi_client“ zu aktivieren.
Hinweis: Die Bibliothek„ OpenApiCommon “ wird durch den Aufruf von „qt_add_openapi_client“ mit dem Ziel verknüpft.
Aufruf des Qt OpenAPI Generators über die Befehlszeile
Um mit dem Qt OpenAPI Generator Client-Code aus einer OpenAPI-Spezifikation zu generieren, sollten Sie den folgenden Befehl ausführen:
java -cp <path-to-installed-openapigen>/openapi-generator-cli.jar:<path-to-installed-qt>/<qt-version>/libexec/cpp-qt6-client-openapi-generator.jar \
org.openapitools.codegen.OpenAPIGenerator \
generate -g cpp-qt6-client \
--additional-properties=cppCommonNamespace=QtOpenApiCommon,prefix=QOAI \
-o generator_output/ -i file.yamlDer obige Befehl fügt den Qt OpenAPI Generator zum Klassenpfad hinzu, wodurch er für den Upstream-OpenAPI-Generator sichtbar wird, und ruft anschließend die Hauptklasse „ org.openapitools.codegen.OpenAPIGenerator “ auf. Durch die Einstellung des Namens des Qt OpenAPI Generators „ cpp-qt6-client “ im Parameter „ -g “ wird sichergestellt, dass er gefunden und aufgerufen wird.
Um Client-Code aus einer besonders umfangreichen OpenAPI-Spezifikationsdatei zu generieren, fügen Sie die Option „ maxYamlCodePoints “ zur Befehlszeile hinzu (siehe unten):
java -DmaxYamlCodePoints=99999999 <other arguments>Hinweis: Fügen Sieimmer „ --additional-properties=cppCommonNamespace=QtOpenApiCommon,prefix=QOAI “ hinzu, wenn Sie die vorab generierte Bibliothek „ Qt6::OpenApiCommon “ in das Projekt einbinden möchten, da diese mit diesen Parametern erstellt wurde und es zu Kompilierungsfehlern kommt, wenn Sie andere Werte angeben.
Der Generator erstellt die Client-Bibliothek im Ordner „ generator_output “. Fügen Sie den Ordner „ generator_output “ zum Projekt hinzu, wie im folgenden Beispiel gezeigt:
find_package(Qt6 REQUIRED COMPONENTS Core OpenApiCommon)
add_subdirectory(generator_output/client)
add_executable(example_binary
main.cpp
)
target_link_libraries(Qt6OpenAPIClient PUBLIC Qt6::OpenApiCommon)
target_link_libraries(example_binary PRIVATE Qt6::Core Qt6OpenAPIClient)Wenn Sie alle Generierungsoptionen anzeigen möchten, können Sie die Option „ config-help “ verwenden (siehe unten):
java -cp <path-to-installed-openapigen>/openapi-generator-cli.jar:<path-to-installed-qt>/<qt-version>/libexec/cpp-qt6-client-openapi-generator.jar \
org.openapitools.codegen.OpenAPIGenerator config-help -g cpp-qt6-clientHinweis: Weitere Informationen zur Verwendung des Generators findenSie in der Dokumentation zum OpenAPI-Generator.
Sicherheitshinweise
Beachten Sie bei der Verwendung von Qt OpenAPI die folgenden sicherheitsrelevanten Aspekte:
- Umgang mit OpenAPI-Spezifikationen aus externen Quellen
- Schutz vor Ressourcenerschöpfung
- Netzwerkkommunikation
Beispiele
Referenz
Dieses Modul stellt Build-Tools (CMake-Befehle) bereit und keine C++-Laufzeit-API. Die verfügbaren Befehle finden Sie unter „CMake-Befehle in Qt6 OpenAPI “.
Lizenzen und Quellenangaben
Verschiedene Teile des Qt OpenAPI-Moduls stehen unter unterschiedlichen Lizenzen zur Verfügung.
Die Bibliothek „Qt OpenApiCommon“ ist unter kommerziellen Lizenzen von The Qt Company verfügbar. Darüber hinaus ist sie unter der GNU Lesser General Public License, Version 3, oder der GNU General Public License, Version 2, verfügbar. Weitere Einzelheiten finden Sie unter „Qt-Lizenzierung “.
Das Qt-OpenAPI-Generator-Plugin sowie die Vorlagendateien für die Codegenerierung (mit der Erweiterung „ .mustache “) stammen aus dem Upstream-Projekt „OpenAPI Generator“ und stehen unter der Apache-Lizenz 2.0.
© 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.