云服务器内容精选

  • 响应示例 状态码: 200 OK { "total" : 2, "size" : 2, "apis" : [ { "auth_type" : "APP", "run_env_name" : "", "group_name" : "api_group_001", "publish_id" : "", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "name" : "Api_function", "remark" : "function API", "run_env_id" : "", "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "req_uri" : "/test/function" }, { "auth_type" : "APP", "run_env_name" : "RELEASE", "group_name" : "APIGroup_d3da", "publish_id" : "ca2631e233a74a758744ae1e19cc5ad7", "group_id" : "6acd94abe58747ee8a73b10c70817bac", "name" : "API_test", "remark" : "function API", "run_env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "id" : "11cbec3a7a8345ca981b86d161bc436e", "req_uri" : "/appcode" } ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:api_name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3004", "error_msg" : "App 356de8eb7a8742168586e5daf5339965 does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 size Integer 本次返回的列表长度 total Long 满足条件的记录数 apis Array of ApiOutline objects 本次返回的API列表 表5 ApiOutline 参数 参数类型 描述 auth_type String API的认证方式 run_env_name String 发布的环境名 group_name String API所属分组的名称 publish_id String 发布记录的编号 group_id String API所属分组的编号 name String API名称 remark String API描述 run_env_id String 发布的环境id id String API编号 req_uri String API的请求地址 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "app" : { "app_id" : "logic-app-7ded3898-8306-49ee-a1df-2708f9aac83a", "app_name" : "app_c8ae", "app_key" : "9cdbfd0b65364fbe8b1c6cf29255a46f", "app_secret" : "c736b99bdc33403ab0652bf91c00e99e", "user_id" : "04f258c8fb00d42a1f65c00df88cc4dc", "project_id" : "04f258c84780d5a52f3bc00dc15aa5e7", "app_type" : "DEDICATE_APIG", "app_codes" : [ ], "created_at" : 1703162733450, "updated_at" : 1703162733450, "bounded_api_count" : 0 } }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 app ApigAppDetailInfo object 创建的APP基础信息。 表5 ApigAppDetailInfo 参数 参数类型 描述 app_codes Array of strings APP Code列表,当APP类型为APIC时,此参数为空。 app_id String APP编号。 app_key String APP的key。 app_name String APP名称。 app_remark String APP描述,默认为空。不超过200个字符。 app_secret String APP密钥。 app_type String APP类型。枚举值如下: APIC:该APP注册在roma connect网关上 APIG:该APP注册在共享API网关上 DEDICATE_APIG:该APP注册在专享API网关上 bounded_api_count Integer APP绑定API数量。 created_at Long APP创建时间。 project_id String 项目ID。 updated_at Long APP更新时间。 user_id String APP创建用户ID。 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 否 String 消息体的类型。设置为text/plain,返回临时预览链接。设置为application/octet-stream,返回临时下载链接。 X-Auth-Token 是 String 用户token 表3 请求Body参数 参数 是否必选 参数类型 描述 app_name 是 String app名称。 app_remark 否 String app备注。 workspace_id 否 String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 app_name 是 String APP的名称,用户数据消费程序的唯一标识符。 应用名称由字母、数字、下划线和中划线组成,长度为1~200个字符。 最小长度:1 最大长度:200
  • 最低配置要求 对Android的系统要求 最低配置:Android5.0,运行 RAM 4G,CPU Arm v7 A9架构双核1.4G,支持NEON加速技术,内部存储空间ROM 4G。 推荐配置:Android5.0~Android10.0,运行RAM 6G及以上,CPU Arm v7 A9架构八核1.6G及以上,支持NEON加速技术, 内部存储空间ROM 16G及以上。 对iOS的系统要求 最低配置:iOS10.0。 推荐配置:iOS10.0-iOS15.6。
  • 更多操作 门户页面创建完成后,您还可以执行如表2的操作。 表2 相关操作 操作 说明 启用门户页面 在门户页面列表,单击“启用”列的“设为启用”。 门户页面启用后,该门户页面可以在底部菜单和门户菜单里进行配置。如果需要在菜单里更改某个门户页面,可以选择“编辑”,调换其他已启用的页面。 禁用门户页面 在门户页面列表,单击“启用”列的“设为禁用”。 门户禁用后,该门户无法被关联到菜单、站点。 如果一个门户页面已经被配置到某个菜单中,再将其禁用,此时为保证门户的前台体验,该页面依旧可以被访问。如果要禁用已经配置在菜单中的门户,需要在门户菜单和门户站点更换其他已启用的门户页面。 预览门户页面 在门户页面列表,单击“操作”列的“预览”,可以对门户页面进行预览。 复制门户页面 在门户页面列表,单击“操作”列的“复制”,将在门户页面列表中生成一个该门户的副本。 编辑门户页面 在门户页面列表,单击“操作”列的“编辑”。 删除门户页面 在门户页面列表,单击“操作”列的“删除”。 说明: 门户页面为禁用状态时,才能被删除。
  • 调用API示例 把API信息替换到HttpClientDemo.java中对应位置。 本示例以AK和SK保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。以Linux系统为例在本地将已获取的AK/SK设置为环境变量。 打开终端,输入以下命令打开环境变量配置文件。 vi ~/.bashrc 设置环境变量,保存文件并退出编辑器。 export HUAWEICLOUD_SDK_AK="已获取AK值" export HUAWEICLOUD_SDK_SK="已获取SK值" 输入以下命令使配置文件生效。 source ~/.bashrc 把API信息和已设置的环境变量替换到HttpClientDemo.java中对应位置。 HttpClientDemo中引用以下类,可在“获取SDK”包中的“src”文件下查看: Constant:demo中用到的常量。 SSLCipherSuiteUtil:tls认证配置参数的工具类,比如配置客户端不校验证书。 UnsupportProtocolException:异常处理类。 public class HttpClientDemo { private static final Logger LOG GER = LoggerFactory.getLogger(HttpClientDemo.class); public static void main(String[] args) throws Exception { // Create a new request. Request httpClientRequest = new Request(); try { // Set the request parameters. // AppKey, AppSecrect, Method and Url are required parameters. // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. // Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. httpClientRequest.setKey(System.getenv("HUAWEICLOUD_SDK_AK")); httpClientRequest.setSecret(System.getenv("HUAWEICLOUD_SDK_SK")); httpClientRequest.setMethod("POST"); // Set a request URL in the format of https://{Endpoint}/{URI}. httpClientRequest.setUrl("put your request url here"); httpClientRequest.addHeader("Content-Type", "text/plain"); // Set a body for http request. httpClientRequest.setBody("put your request body here"); } catch (Exception e) { LOGGER.error(e.getMessage()); return; } CloseableHttpClient client = null; try { // Sign the request. HttpRequestBase signedRequest = Client.sign(httpClientRequest, Constant.SIGNATURE_ALGORITHM_SDK_HMAC_SHA256); if (Constant.DO_VERIFY) { // creat httpClient and verify ssl certificate HostName.setUrlHostName(httpClientRequest.getHost()); client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClientWithVerify(Constant.INTERNATIONAL_PROTOCOL); } else { // creat httpClient and do not verify ssl certificate client = (CloseableHttpClient) SSLCipherSuiteUtil.createHttpClient(Constant.INTERNATIONAL_PROTOCOL); } HttpResponse response = client.execute(signedRequest); // Print the body of the response. HttpEntity resEntity = response.getEntity(); if (resEntity != null) { LOGGER.info("Processing Body with name: {} and value: {}", System.getProperty("line.separator"), EntityUtils.toString(resEntity, "UTF-8")); } } catch (Exception e) { LOGGER.error(e.getMessage()); } finally { if (client != null) { client.close(); } } } } 运行HttpClientDemo.java,对请求进行签名、访问API并打印结果。 示例结果如下: [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Print the authorization: [Authorization: SDK-HMAC-SHA256 Access=3afe0280a6e1466e9cb6f23bcccdba29, SignedHeaders=host;x-sdk-date, Signature=26b2abfa40a4acf3c38b286cb6cbd9f07c2c22d1285bf0d4f6cf1f02d3bfdbf6] [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Print the status line of the response: HTTP/1.1 200 OK [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Date and value: Fri, 26 Aug 2022 08:58:51 GMT [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Content-Type and value: application/json [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Transfer-Encoding and value: chunked [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Connection and value: keep-alive [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: Server and value: api-gateway [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Header with name: X-Request-Id and value: 10955c5346b9512d23f3fd4c1bf2d181 [main] INFO com.huawei.apig.sdk.demo.HttpClientDemo - Processing Body with name: and value: {"200": "sdk success"} 显示{"200": "sdk success"},表示签名成功,API成功请求到后端。 如果改变AK或SK的值,API网关将返回的错误信息error_msg。
  • 准备开发环境 安装开发工具 请根据所使用语言选择适合的开发工具。 安装2018.3.5或以上版本的IntelliJ IDEA,安装包请至IntelliJ IDEA官方网站下载。 安装2019 version 16.8.4及以上版本的Visual Studio,安装包请至Visual Studio官方网站下载。 安装开发语言环境 Java:安装1.8.111或以上版本的Java Development Kit,安装包请至Oracle官方下载页面下载。 Go:安装1.14及以上版本的Go安装包,安装包请至Go官方下载页面下载。 Python:安装2.7或3.X版本的Python安装包,安装包请至Python官方下载页面下载。 JavaScript:安装15.10.0及以上版本的Nodejs安装包,安装包请至Nodejs官方下载页面下载。 PHP:安装8.0.3及以上版本的PHP安装包,安装包请至PHP官方下载页面下载。 Android:安装4.1.2及以上版本的Android Studio,安装包请至Android Studio官方网站下载。
  • 响应说明 响应状态码: 200 表3 响应体参数 序号 名称 参数类型 是否必选 说明 1 id string False 主键id 2 callType string False 呼叫类型 0:直呼 1:双呼 2:透显呼叫 3 callerPresent String[] False 被叫显示号码。 最多5个,多个号码之间以,隔开 每个号码长度限制:string(15) 4 callNumber String[] False 坐席软电话号码。 最多5个,多个号码之间以,隔开 每个号码长度限制:string(15) 5 userId String False 用户id t_aicc_pub_appcube_user表中SUM_USER_ID的值。 6 callNumberDefault String False 默认坐席绑定的软电话号码。 长度限制:string(15) 7 callerPresentDefault String False 被叫默认显示号码。 长度限制:string(15) 8 agentName String False 坐席绑定的业务帐号。 9 returnCode string True 0:成功 其他值表示失败 10 returnDesc string False 响应结果描述。 11 createTime string False 配置创建时间 12 partdbId string False 分区id 13 tenantId string False 租间id 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
  • 报文样例 请求头: x-app-key:9******************************3 Authorization:Bearer e******************************e Content-Type:application/json 请求参数: { "userId": "10gg000000y6OOrNaUFs" } 响应头: { "connection": "keep-alive", "content-type": "application/json;charset=UTF-8" } 响应参数: { "returnCode": "0", "callNumber": [ "12323", "232343", "233", "239343" ], "callerPresent": [ "12323" ], "callNumberDefault": "23232323", "agentName": "y111", "id": "1307145259662215169", "userId": "10gg000000y6OOrNaUFs", "callerPresentDefault": "1212121212", "returnDesc": "query success", "callType": "1" }
  • 请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 X-APP-Key string False appKey字段,用户标识 2 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1 userId String True 用户id。 t_aicc_pub_appcube_user表中USER_ID的值。
  • 响应说明 响应状态码: 200 表3 响应体参数 序号 名称 参数类型 是否必选 说明 1 id string False 主键id。 2 returnCode string True 0:成功 其他值表示失败 3 returnDesc string False 响应结果描述。 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
  • 请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 X-APP-Key string False appKey字段,用户标识 2 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1 id String True 主键id。 创建App个人设置 (create)中响应体参数id的值。 2 callType string False 呼叫类型 0:直呼 1:双呼 2:透显呼叫 3 userId String True 用户id。 t_aicc_pub_appcube_user表中USER_ID的值。 4 callerPresent String[] False 被叫显示号码。 最多5个,多个号码之间以,隔开 每个号码长度限制:string(15) 5 callNumber String[] False 坐席软电话号码。 最多5个,多个号码之间以,隔开 每个号码长度限制:string(15) 6 callNumberDefault string False 默认坐席绑定的软电话号码。 长度限制:string(15) 7 callerPresentDefault string False 被叫默认显示号码。 长度限制:string(15)