Qt OpenAPI
Qt OpenAPI 모듈은 Qt Network RESTful API를 사용하여 Qt HTTP 클라이언트를 생성하는 기능을 제공합니다. 모듈의 주요 기능은 Qt OpenAPI 생성기와 미리 생성된 OpenApiCommon 라이브러리입니다.
Qt OpenAPI 생성기는 OpenAPI 생성기에 대한 플러그인입니다. 이 플러그인을 사용하면 다음을 사용하여 C++로 Qt HTTP 클라이언트를 자동 생성할 수 있습니다. Qt NetworkQRestAccessManager API를 사용하여 C++로 자동 생성할 수 있습니다.
참고: 6.11의 Qt OpenAPI는 기술 프리뷰 버전으로, Qt의 호환성 약속에서 해당 API는 제외됩니다.
모듈 사용
Qt OpenAPI 모듈을 사용하려면 다음 패키지를 설치해야 합니다:
- OpenAPI 생성기 (OpenAPI 7.12.0 이상 필요).
- Maven 플러그인 (Maven 3.0 이상 필요).
- Java JDK (JDK 17 이상 필요).
필요한 설치가 완료되면 프로젝트 내에서 Qt OpenAPI 생성기를 사용할 준비가 된 것입니다. Qt OpenAPI 생성기를 사용하여 OpenAPI 사양에서 클라이언트 코드를 생성하려면 프로젝트의 CMakeLists.txt 파일 내에서 qt_add_openapi_client 함수를 호출합니다. 자세한 내용은 CMake로 빌드하기를 참조하십시오.
CMake로 빌드하기
qt_add_openapi_client 함수 사용
find_package() 명령을 사용하여 Qt6 패키지에서 필요한 모듈 컴포넌트를 찾습니다. 그런 다음 qt_add_openapi_client 함수를 호출하여 필요한 Qt HTTP 클라이언트 라이브러리를 생성합니다. 아래에서 전체 CMake 코드 예제를 참조하세요:
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} )
참고: OpenApiTools 라이브러리는 결과물인 openapiApplication 대상에 연결할 필요가 없습니다. 그러나 qt_add_openapi_client cmake 함수를 활성화하는 데는 여전히 필요합니다.
참고: OpenApiCommon 라이브러리는 qt_add_openapi_client 호출에 의해 타겟에 링크됩니다.
명령줄에서 Qt OpenAPI 생성기 호출하기
Qt OpenAPI 생성기를 사용하여 OpenAPI 사양에서 클라이언트 코드를 생성하려면 다음 명령을 실행해야 합니다:
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
위의 명령은 Qt OpenAPI 생성기를 클래스 경로에 추가하여 업스트림 OpenAPI 생성기에서 볼 수 있도록 한 다음 메인 클래스 org.openapitools.codegen.OpenAPIGenerator 를 호출합니다. -g 파라미터에 Qt OpenAPI 생성기의 이름 cpp-qt6-client 을 설정하면 이 생성기를 찾아서 호출할 수 있습니다.
초대형 OpenAPI 사양 파일에서 클라이언트 코드를 생성하려면 아래를 참조하여 명령줄에 maxYamlCodePoints 옵션을 추가합니다:
java -DmaxYamlCodePoints=99999999 <other arguments>
참고: 미리 생성된 Qt6::OpenApiCommon 라이브러리를 프로젝트에 연결하려면 이 매개변수로 빌드되었으므로 다른 값을 제공하면 컴파일 오류가 발생할 수 있으므로 항상 --additional-properties=cppCommonNamespace=QtOpenApiCommon,prefix=QOAI 을 추가하세요.
생성기는 generator_output 폴더에 클라이언트 라이브러리를 생성합니다. 다음 예시와 같이 프로젝트에 generator_output 폴더를 추가합니다:
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)
모든 생성 옵션을 보려면 config-help 옵션을 사용하면 됩니다(아래 참조):
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
참고: 생성기 사용법에 대한 자세한 내용은 OpenAPI 생성기 문서에서 확인할 수 있습니다.
예제
참조
이 모듈은 런타임 C++ API가 아닌 빌드 도구(CMake 명령어)를 제공합니다. 사용 가능한 명령은 Qt6 OpenAPI의 CMake 명령을 참조하십시오.
라이선스 및 속성
Qt OpenAPI 모듈의 다른 부분은 다른 라이센스에 따라 사용할 수 있습니다.
Qt OpenApiCommon 라이브러리는 The Qt Company의 상용 라이센스에 따라 사용할 수 있습니다. 또한 GNU 약소 일반 공중 사용 허가서 버전 3 또는 GNU 일반 공중 사용 허가서 버전 2에 따라 사용할 수 있습니다. 자세한 내용은 Qt 라이선스를 참조하십시오.
코드 생성을 위한 템플릿 파일(확장자가 .mustache )과 함께 Qt OpenAPI Generator 플러그인은 업스트림 OpenAPI 생성기 프로젝트에서 파생되었으며, 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.