qt_add_openapi_client
指定された OpenAPI 仕様に基づいて HTTP クライアントを生成します。
このコマンドは、Qt6 パッケージのOpenApiTools コンポーネントで定義されています。以下のコマンドでパッケージを読み込みます:
find_package(Qt6 REQUIRED COMPONENTS OpenApiTools)このコマンドは Qt 6.11 で導入されました。
注:この コマンドはテクノロジープレビュー版であり、今後のリリースで変更される可能性があります。
概要
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>]
)バージョン指定なしのコマンドが無効になっている場合は、代わりに `qt6_add_openapi_client() ` を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
qt_add_openapi_client 関数は、指定された仕様ファイルに対して Qt OpenAPI ジェネレータを呼び出します。その結果、このコマンドはソースファイルのスコープを生成し、それらをターゲットのソースリストに追加します。ターゲットが存在しない場合、生成はエラーメッセージとともに中止されます。ターゲットを作成するには、qt_add_library またはqt_add_executable 関数を呼び出してください。
注: 現在、client によるコード生成のみが サポートされています。
引数
SPEC_FILEOpenAPI仕様ファイルを指定します。コード生成には必須です。ファイルの拡張子は*.yamlである必要があります。OUTPUT_DIRECTORY生成されたコードの出力ディレクトリを指定します。指定がない場合は、CMAKE_CURRENT_BINARY_DIRが使用されます。ADDITIONAL_PROPERTIESgenerate コマンドの追加設定プロパティを指定します。これらは検証されずに、そのまま OpenAPI Generator に渡されます。GENERATE_OPTIONSgenerateコマンドに渡される追加のオプションを指定します。GENERATE_OPTIONSを通じて渡された-iおよび--input-spec引数は無視されます。OpenAPI仕様ファイルは、SPEC_FILE引数を使用してのみ設定されます。GENERATE_OPTIONSを通じて渡された-oおよび--output引数は無視されます。出力ディレクトリは、OUTPUT_DIRECTORY引数によってのみ設定されます。JAVA_OPTIONSOpenAPI Generatorの起動時にJVMに渡される追加オプションを指定します。JVMの動作を設定する際に使用します。オプションは検証されずにそのまま渡されます。GENERATE_DOCUMENTATION(Qt 6.12 以降) 生成されたクラスに対するdoxygenドキュメントの生成を有効にします。DOCUMENTATION_OUTPUT_DIRECTORY(Qt 6.12 以降) 生成されたクラスのdoxygenドキュメントを保存するディレクトリを指定します。このオプションは、GENERATE_DOCUMENTATIONと組み合わせてのみ使用できます。OUTPUT_PUBLIC_HEADERS_DIR生成されたパブリックヘッダーの一覧を保存するディレクトリを指定します。指定しない場合は、OUTPUT_DIRECTORY内にヘッダーが見つかります。OUTPUT_PRIVATE_HEADERS_DIR生成されたプライベートヘッダーの一覧を保存するディレクトリを指定します。指定しない場合は、ヘッダーはOUTPUT_DIRECTORY内にあります。
生成動作のカスタマイズ
GENERATE_OPTIONS およびADDITIONAL_PROPERTIES 引数を使用すると、アップストリームの OpenAPI ジェネレータと Qt ジェネレータプラグインの両方の動作をカスタマイズできます。
以下の例は、プロジェクト内でこれら 2 つの引数を組み合わせて使用する方法を示しています:
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
)ジェネレータ引数の動作およびサポートされる値は、インストールされている OpenAPI Generator のバージョンに依存し、バージョン間で変更される場合があります。
追加の設定プロパティは、次の 2 つの方法で指定できます:
ADDITIONAL_PROPERTIES引数を使用する方法。GENERATE_OPTIONS引数に-pまたは--additional-propertiesを指定する方法。
両方を同時に使用すると、予期しない結果になる可能性があります。いずれか一方のアプローチを選択することをお勧めします。
注:一部の 追加プロパティには、上書きできない固定値が設定されています。これらを上書きしようとすると、指定した値は無視されます。たとえば、packageName という追加プロパティは、関数の<target> パラメータに対応しており、変更することはできません。
JVM の動作のカスタマイズ
次の例は、大規模な仕様ファイルに対してYAMLパーサーの制限を緩和し、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.