qt_add_openapi_client
Genera un cliente HTTP utilizando una especificación OpenAPI proporcionada.
El comando está definido en el componente OpenApiTools del paquete Qt6. Cargue el paquete con:
find_package(Qt6 REQUIRED COMPONENTS OpenApiTools)
Este comando se introdujo en Qt 6.11.
Nota: Este comando está en fase de previsualización tecnológica y puede cambiar en futuras versiones.
Sinopsis
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>] )
Si los comandos sin versión están desactivados, utilice qt6_add_openapi_client() en su lugar. Admite el mismo conjunto de argumentos que este comando.
Descripción
La función qt_add_openapi_client llama al generador OpenAPI de Qt para un archivo de especificación proporcionado. Como resultado, el comando genera el ámbito de los archivos fuente y los añade a la lista de fuentes de destino. Si el objetivo no existe, la generación se detendrá con un mensaje de error. Para crear el objetivo puede llamar a las funciones qt_add_library o qt_add_executable.
Nota: Actualmente sólo se soporta la generación de código client.
Argumentos
SPEC_FILEespecifica un archivo de especificación OpenAPI, obligatorio para la generación de código. El archivo debe tener una extensión*.yaml.OUTPUT_DIRECTORYespecifica el directorio de salida para el código generado. Si no se especifica, se utilizaCMAKE_CURRENT_BINARY_DIR.ADDITIONAL_PROPERTIESespecifica propiedades de configuración adicionales para el comando generate. Se pasan tal cual al generador OpenAPI sin validación.GENERATE_OPTIONSespecifica opciones adicionales que se pasan al comando generate.Los argumentos
-iy--input-specpasados a través deGENERATE_OPTIONSserán ignorados. El archivo de especificación OpenAPI se configura exclusivamente mediante el argumentoSPEC_FILE.Los argumentos
-oy--outputpasados a través deGENERATE_OPTIONSserán ignorados. El directorio de salida se establece exclusivamente utilizando el argumentoOUTPUT_DIRECTORY.JAVA_OPTIONSespecifica las opciones adicionales que se pasan a la JVM al invocar el generador OpenAPI. Utilícelo para configurar el comportamiento de la JVM. Las opciones se pasan tal cual sin validación.GENERATE_DOCUMENTATIONpermite la generación de documentacióndoxygenpara las clases generadas.DOCUMENTATION_OUTPUT_DIRECTORYespecifica un directorio que almacenará la documentacióndoxygen. Esta opción sólo puede utilizarse junto conGENERATE_DOCUMENTATION.OUTPUT_PUBLIC_HEADERS_DIRespecifica un directorio que almacenará la lista de cabeceras públicas generadas, de lo contrario puede encontrar las cabeceras enOUTPUT_DIRECTORY.OUTPUT_PRIVATE_HEADERS_DIRespecifica un directorio que almacenará la lista de cabeceras privadas generadas, de lo contrario puede encontrar las cabeceras enOUTPUT_DIRECTORY.
Personalización del comportamiento de generación
Los argumentos GENERATE_OPTIONS y ADDITIONAL_PROPERTIES permiten personalizar el comportamiento tanto del generador OpenAPI como del plugin generador Qt.
El siguiente ejemplo muestra cómo puede utilizar ambos argumentos juntos en su proyecto:
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
)El comportamiento y los valores admitidos de los argumentos del generador dependen de la versión instalada del generador OpenAPI y pueden cambiar entre versiones.
Puede proporcionar propiedades de configuración adicionales de dos maneras:
- Utilizando el argumento
ADDITIONAL_PROPERTIES. - Pasando
-po--additional-propertiesen el argumentoGENERATE_OPTIONS.
El uso simultáneo de ambos métodos puede dar lugar a resultados inesperados. Le recomendamos que elija uno de los dos métodos.
Nota: Algunas propiedades adicionales tienen valores fijos que no pueden anularse. Si intenta anularlas, sus valores serán ignorados. Por ejemplo, la propiedad adicional packageName corresponde al parámetro <target> de la función y no puede modificarse.
Personalizar el comportamiento de la JVM
El siguiente ejemplo muestra cómo aumentar el límite del analizador sintáctico YAML para archivos de especificación grandes y reducir la salida de registro a advertencias únicamente utilizando 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.