En esta página

Qt OpenAPI

El módulo Qt OpenAPI proporciona funcionalidad para generar clientes HTTP Qt utilizando APIs RESTful Qt Network. Las principales características del módulo son el generador Qt OpenAPI y la librería pregenerada OpenApiCommon.

El generador OpenAPI de Qt es un complemento del generador OpenAPI. Permite autogenerar clientes HTTP Qt en C++ utilizando Qt Network API como QRestAccessManager.

Nota: Qt OpenAPI en 6.11 está en Technical Preview, excluyendo su API de las promesas de compatibilidad de Qt.

Uso del módulo

Para utilizar el módulo Qt OpenAPI es necesario instalar los siguientes paquetes:

Una vez que dispongas de las instalaciones necesarias, el generador OpenAPI de Qt estará listo para ser utilizado en tus proyectos. Para generar código cliente a partir de una especificación OpenAPI utilizando el generador Qt OpenAPI, llama a la función qt_add_openapi_client dentro del archivo CMakeLists.txt de tu proyecto. Consulte Construcción con CMake para más detalles.

Construcción con CMake

Uso de la función qt_add_openapi_client

Utilice el comando find_package() para localizar los componentes del módulo necesarios en el paquete Qt6. A continuación, llame a la función qt_add_openapi_client para generar la biblioteca cliente HTTP de Qt necesaria. Vea el ejemplo de código CMake completo a continuación:

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 Qt6::Core generatedLibrary)

include(GNUInstallDirs)
install(TARGETS openapiApplication
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

Nota: no es necesario enlazar la bibliotecaOpenApiTools con el destino openapiApplication resultante. Sin embargo, sigue siendo necesaria para activar la función cmake qt_add_openapi_client.

Nota: La bibliotecaOpenApiCommon se vincula al destino mediante la llamada qt_add_openapi_client.

Llamada al generador Qt OpenAPI desde la línea de comandos

Para generar código cliente a partir de una especificación OpenAPI utilizando el Generador Qt OpenAPI, debe ejecutar el siguiente comando:

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.yaml

El comando anterior añade el generador Qt OpenAPI al classpath, lo que lo hace visible para el generador OpenAPI upstream, y luego invoca la clase principal org.openapitools.codegen.OpenAPIGenerator. Poniendo el nombre del generador OpenAPI de Qt cpp-qt6-client en el parámetro -g se asegura que será encontrado y llamado.

Para generar código cliente a partir de un archivo de especificación OpenAPI extra grande, añada la opción maxYamlCodePoints a la línea de comandos, véase más abajo:

java -DmaxYamlCodePoints=99999999 <other arguments>

Nota: Añade siempre --additional-properties=cppCommonNamespace=QtOpenApiCommon,prefix=QOAI si quieres enlazar la librería pregenerada Qt6::OpenApiCommon al proyecto, porque fue construida con estos parámetros, y obtendrás errores de compilación si proporcionas valores diferentes.

El generador crea la librería cliente en la carpeta generator_output. Añade la carpeta generator_output al proyecto, como se muestra en el siguiente ejemplo:

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)

Si quieres ver todas las opciones de generación, puedes utilizar la opción config-help, ver más abajo:

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-client

Nota: Puede encontrar más información sobre el uso del generador en la documentación del generador OpenAPI.

Ejemplos

Referencia

Este módulo proporciona herramientas de compilación (comandos CMake) en lugar de una API C++ en tiempo de ejecución. Ver Comandos CMake en Qt6 OpenApi para los comandos disponibles.

Licencias y atribuciones

Diferentes partes del módulo Qt OpenAPI están disponibles bajo diferentes licencias.

La librería Qt OpenApiCommon está disponible bajo licencias comerciales de The Qt Company. Además, está disponible bajo la Licencia Pública General Reducida de GNU, versión 3, o la Licencia Pública General de GNU, versión 2. Ver Licencias Qt para más detalles.

El plugin Qt OpenAPI Generator, junto con los archivos de plantilla para la generación de código (que tienen la extensión .mustache ), se derivan del proyecto upstream OpenAPI generator, y están licenciados bajo la Apache License 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.