# ecloud-sdk-cpp **Repository Path**: chinamobile_ecloud/ecloud-sdk-cpp ## Basic Information - **Project Name**: ecloud-sdk-cpp - **Description**: 移动云OpenAPI平台的C++ SDK,可以让C++开发者无需关心API请求细节即可快速使用弹性云服务器、虚拟私有云等多个移动云服务。 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 1 - **Created**: 2022-09-21 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: web-dev-toolkits **Tags**: None ## README

移动云开发者 C++ 软件开发工具包(C++ SDK)

欢迎使用移动云C++ SDK 。 移动云 C++ SDK 让您无需关心请求细节即可快速使用弹性云主机等多个移动云服务。 这里将向您介绍如何获取并使用移动云C++ SDK 。 ## 使用前提 - 要使用移动云 C++ SDK ,您需要拥有移动云账号以及该账号对应的 Access Key(AK)和 Secret Key(SK)。请在移动云控制台 “我的凭证-访问密钥” 页面上创建和查看您的 AK&SK 。更多信息请查看 [访问密钥](https://ecloud.10086.cn/op-help-center/doc/article/49739) 。 - 移动云 C++ SDK 支持 **C++ 11** 及以上版本,要求安装**CMake 3.10**及以上版本。 ## SDK 获取和安装 ### 依赖的第三方库 `boost`、`cpprestsdk`、`spdlog`、`openssl` ### Linux安装SDK #### 1、安装依赖包 所需依赖包除spdlog外都可以在各系统包管理工具中获取: 例如基于 Debian/Ubuntu 的系统 ``` bash sudo apt-get install libboost-all-dev libssl-dev libcpprest-dev ``` 基于 CentOS 的系统 ``` bash sudo yum install libboost-all-dev libssl-dev libcpprest-dev ``` spdlog手动编译安装: ```bash git clone https://github.com/gabime/spdlog.git cd spdlog && mkdir build && cd build cmake .. && make -j ``` spdlog安装,请参考:[gabime/spdlog官方说明](https://github.com/gabime/spdlog#install) ### 2、安装SDK包 ```bash git clone https://gitee.com/chinamobile_ecloud/ecloud-sdk-cpp.git cd ecloud-sdk-cpp mkdir build cd build && cmake .. make && make install ``` 完成上述操作后,**C++ SDK 安装目录为 `/usr/local`**。 ### Windows安装SDK 推荐使用vcpkg管理第三方依赖包,Windows操作系统安装vcpkg,请参考: [microsoft/vcpkg官方说明](https://github.com/microsoft/vcpkg#quick-start-windows ) #### 1、安装依赖包 ```bash vcpkg install cpprestsdk boost openssl spdlog ``` #### 2、使用 CLion 进行编译 2.1、使用 CLion 打开 `ecloud-sdk-cpp` 目录 2.2、选择 `File` → `Settings` 2.3、选择 `Build, Execution, Deployment` → `CMake` 2.4、在 `CMake options` 中加入 2.5、`-DCMAKE_TOOLCHAIN_FILE={your vcpkg install dir}/scripts/buildsystems/vcpkg.cmake` 2.6、右键 `CMakeLists.txt` 选择 `Load CMake Project` 2.7、选择`Build`开始编译 #### 3、安装C++ SDK 编译完成后选择 `Build` → `Install` 完成上述操作后,**C++ SDK 安装目录为 `C:\Program File (x86)\ecloud-sdk-cpp`** 。 ## 代码示例 - 使用如下代码查看绑定的虚拟网卡列表,首先指定地域(资源池编号)。 - 调用前请根据实际情况替换如下变量: ``、``、`poolId` 。 ``` c++ #include #include #include #include #include using namespace Ecloud::Sdk::ECS::V1; using namespace Ecloud::Sdk::ECS::V1::Model; using namespace Ecloud::Sdk::Core; using namespace std; int main(void) { auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); auto client = std::make_shared(config); VmGetServerPortsRequest vmGetServerPortsRequest; VmGetServerPortsPath vmGetServerPortsPath; vmGetServerPortsPath.setServerId("test001"); vmGetServerPortsRequest.setVmGetServerPortsPath(vmGetServerPortsPath); auto result = client->vmGetServerPorts(vmGetServerPortsRequest); } ``` ## 在线调试 [API开放平台](https://ecloud.10086.cn/op-oneapi-static/#/overview) 提供API检索及平台调试,支持全量快速检索、可视化调试、帮助文档查看等能力。 ## 用户手册 * [1. 客户端连接参数](#1-客户端连接参数-top) * [1.1 默认配置](#11-默认配置-top) * [1.2 个性化配置](#12-个性化配置-top) * [1.3 超时配置](#13-超时配置-top) * [2. 客户端认证信息](#2-客户端认证信息-top) [2.1 使用AK/SK](#2.1-使用AK/SK-top) * [3. 客户端初始化](#3-客户端初始化-top) * [4. 发送请求并查看响应](#4-发送请求并查看响应-top) * [5. 异常处理](#5-异常处理-top) ### 1. 客户端连接参数 #### 1.1 默认配置 ``` c++ auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); ``` #### 1.2 个性化配置 ``` c++ auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); auto httpRequest = std::make_shared(); auto client = std::make_shared(config,httpRequest); ``` #### 1.3 超时配置 ``` c++ auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); config->setReadTimeOut(5); ``` ### 2. 客户端认证信息 **认证参数说明**: - `ak` - 移动云账号 Access Key - `sk` - 移动云账号 Secret Key - `poolId` - 服务部署区域(资源池编号) #### 2.1 使用 AK 和 SK ``` C++ auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); ``` ### 3. 客户端初始化 ``` c++ auto config = std::make_shared(); config->setAccessKey(""); config->setSecretKey(""); config->setPoolId("poolId"); auto client = std::make_shared(config); ``` ### 4. 发送请求并查看响应 ``` c++ VmGetServerPortsRequest vmGetServerPortsRequest; VmGetServerPortsPath vmGetServerPortsPath; vmGetServerPortsPath.setServerId("test001"); vmGetServerPortsRequest.setVmGetServerPortsPath(vmGetServerPortsPath); auto result = client->vmGetServerPorts(vmGetServerPortsRequest); ``` ### 5. 异常处理 SDK 对程序执行过程中各类异常以ApiException进行统一收口。 ```c++ try { response = client.VmGetServerPorts(request) } catch (ApiException &e) { std::cout << e.what() << std::endl; } ``` ### 6.使用CMakeLists构建工程 - 构建单个工程 ```cmake SET(BUILD_PRO ecloudsdkecs) SET(BUILD_VERSION v1) if (BUILD_PRO STREQUAL "all" OR BUILD_PRO STREQUAL "") add_subdirectory(ecloudsdkcore) message(STATUS "Build all Services") else () add_subdirectory(ecloudsdkcore) add_subdirectory(${BUILD_PRO}/src/${BUILD_VERSION}) endif () ``` - 构建多个工程 ```cmake add_subdirectory(ecloudsdkcore) add_subdirectory(ecloudsdkecs/src/v1) add_subdirectory(ecloudsdktag/src/v1) add_subdirectory(ecloudsdkims/src/v1) ```