このページでは

qt_add_openapi_client

提供された OpenAPI 仕様を使用して HTTP クライアントを生成します。

このコマンドはQt6 パッケージのOpenApiTools コンポーネントで定義されています。でパッケージをロードします:

find_package(Qt6 REQUIRED COMPONENTS OpenApiTools)

このコマンドは Qt 6.11 で導入されました。

Note: このコマンドはテクノロジープレビューであり、将来のリリースで変更される可能性があります。

概要

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>]
)

バージョンレスコマンドが無効になっている場合は、qt6_add_openapi_client() 。このコマンドと同じ引数セットをサポートしている。

説明

qt_add_openapi_client 関数は、指定された仕様ファイルに対して Qt OpenAPI ジェネレーターを呼び出します。その結果、このコマンドはソース・ファイルのスコープを生成し、ターゲット・ソース・リストに追加します。ターゲットが存在しない場合、生成はエラーメッセージとともに停止します。ターゲットを作成するには、qt_add_library またはqt_add_executable 関数を呼び出します。

注: 現在サポートされているのは、client コード生成のみです。

引数

  • SPEC_FILE コード生成に必須のOpenAPI仕様ファイルを指定します。ファイルの拡張子は*.yaml でなければならない。
  • OUTPUT_DIRECTORY は、生成されるコードの出力ディレクトリを指定します。指定しない場合は、CMAKE_CURRENT_BINARY_DIR が使用されます。
  • ADDITIONAL_PROPERTIES generate コマンドの追加構成プロパティを指定します。これらは、検証されることなく、そのまま OpenAPI Generator に渡されます。
  • GENERATE_OPTIONS generateコマンドに渡される追加オプションを指定します。

    GENERATE_OPTIONS を通して渡される-i--input-spec の引数は無視されます。OpenAPI仕様ファイルは、もっぱらSPEC_FILE 引数を使用して設定されます。

    GENERATE_OPTIONS を通して渡される-o--output 引数は無視されます。出力ディレクトリは、OUTPUT_DIRECTORY 引数を使用して排他的に設定されます。

  • JAVA_OPTIONS は、OpenAPIジェネレーターを起動するときにJVMに渡される追加オプションを指定します。JVMの動作を設定するために使用します。オプションは検証されずにそのまま渡されます。
  • GENERATE_DOCUMENTATION 生成されたクラスに対してdoxygen ドキュメントの生成を有効にします。
  • DOCUMENTATION_OUTPUT_DIRECTORY は、doxygen ドキュメントを格納するディレクトリーを指定します。このオプションは、GENERATE_DOCUMENTATION と一緒にのみ使用できます。
  • OUTPUT_PUBLIC_HEADERS_DIR は、生成されたパブリック・ヘッダのリストを格納するディレクトリを指定します。指定しない場合は、OUTPUT_DIRECTORY.
  • OUTPUT_PRIVATE_HEADERS_DIR は生成されたプライベート・ヘッダのリストを格納するディレクトリを指定します。そうでない場合はOUTPUT_DIRECTORY にヘッダがあります。

生成の振る舞いをカスタマイズする

GENERATE_OPTIONSADDITIONAL_PROPERTIES の引数で、アップストリームの OpenAPI ジェネレータと Qt ジェネレータプラグインの両方の動作をカスタマイズできます。

以下の例では、プロジェクトで両方の引数を一緒に使用する方法を示します:

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 ジェネレータのバージョンに依存し、バージョン間で変更される可能性があります。

追加の設定プロパティを指定するには、次の 2 つの方法があります:

  • ADDITIONAL_PROPERTIES 引数を使用する。
  • GENERATE_OPTIONS 引数に-p または--additional-properties を渡す。

両方を同時に使用すると、予期しない結果になることがあります。どちらかの方法を選択することを推奨する。

注意: いくつかの追加プロパティには、オーバーライドできない固定値があります。オーバーライドしようとすると、その値は無視されます。例えば、packageName 追加プロパティは、関数の<target> パラメータに対応し、変更できません。

JVM動作のカスタマイズ

次の例では、JAVA_OPTIONS を使って、大きな仕様ファイルのために YAML パーサーの制限を増やし、ログ出力を警告だけに減らす方法を示しています:

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.