华为云用户手册

  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 主账号用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 server_host 是 String server_host是由用户提供的域名。 我们会通过此域名进行接口调用,请以https/http开头,长度小于等于128位字符。 TestHub将会通过此域名下的接口,保证服务数据与用户系统数据的一致性。 service_name 是 String 测试类型名称,用于界面显示,不能使用当前保留名,长度小于等于128。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 execute_list 是 Array of TestCaseExecuteBean objects 测试用例执行信息,数组长度小于等于50 plan_id 否 String 测试计划id service_id 是 Integer 注册测试类型服务接口返回的服务id 表4 TestCaseExecuteBean 参数 是否必选 参数类型 描述 execute_id 是 String 注册服务执行id,该值不允许重复,不超过32位字符 result_id 是 String 测试用例结果,(0-成功,1-失败,5-执行中,6-停止) start_time 是 Long 用例开始执行的时间戳,在执行开始时该字段必传 testcase_id 是 String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。
  • 响应参数 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • 请求示例 批量执行测试用例 post https://{endpoint}/v1/projects/efdb403066474ab08836b9eeaaa23bca/testcases/execution { "execute_list" : [ { "execute_id" : "10000", "result_id" : "0", "start_time" : 16659743037899, "testcase_id" : "b66aab5469cc4ab39b0dda8e644a42a4" } ], "plan_id" : "b66aab5469cc4ab39b0dda8e644a42a4", "service_id" : 13 }
  • 响应示例 状态码: 200 OK { "assigned_user" : { "id" : "ID", "name" : "名称" }, "execute_count" : 4, "extend_info" : { "author" : { "id" : "1111", "name" : "名称", "time" : "2000-01-01 00:00:00" }, "defect_list" : [ { "id" : "ID", "name" : "名称" } ], "description" : "描述信息", "domain" : { "id" : "ID", "name" : "名称" }, "fixed_version" : { "id" : "ID", "name" : "名称" }, "issue" : { "id" : "ID", "name" : "名称" }, "label_list" : [ { "id" : "ID", "name" : "名称" } ], "module" : { "id" : "ID", "name" : "名称" }, "preparation" : "前置条件", "steps" : [ { "expect_result" : "[\"\\u003cp\\u003e预期结果1\\u003c/p\\u003e\",\"\\u003cp\\u003e预期结果2\\u003c/p\\u003e\"]", "test_step" : "[\"\\u003cp\\u003e步骤描述1\\u003c/p\\u003e\",\"\\u003cp\\u003e步骤描述2\\u003c/p\\u003e\"]" } ], "test_version_id" : "97b82412f1", "updator" : { "id" : "1111", "name" : "名称", "time" : "2000-01-01 00:00:00" } }, "name" : "某个测试用例", "project_id" : "2394921", "rank_id" : "2", "result_id" : "0", "service_id" : 13, "status_id" : "1", "testcase_id" : "97b82412f1ca4628803b918c27ed09de", "testcase_number" : "1234" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 assigned_user AssignedUserInfo object 处理者信息 execute_count Integer 测试用例执行次数 extend_info ExtendInfo object 测试用例扩展信息 name String 测试用例名称 project_id String 软开云项目唯一标识 rank_id String 测试用例等级 result_id String 测试用例执行结果 service_id Integer 注册测试类型服务接口返回的服务id status_id String 测试用例状态 testcase_id String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。 testcase_number String 测试用例编号 表5 ExtendInfo 参数 参数类型 描述 author ExtendAuthorInfo object 创建者信息 defect_list Array of AssignedUserInfo objects 缺陷信息 description String 描述信息 domain AssignedUserInfo object 租户信息 fixed_version AssignedUserInfo object 迭代信息 issue AssignedUserInfo object 需求信息 label_list Array of AssignedUserInfo objects 标签信息 module AssignedUserInfo object 模块信息 preparation String 前置条件 steps Array of ExternalServiceCaseStep objects 测试步骤,数组长度小于10 test_version_id String 测试版本号 updator ExtendAuthorInfo object 更新者信息 表6 AssignedUserInfo 参数 参数类型 描述 id String id信息 name String 名称信息 表7 ExternalServiceCaseStep 参数 参数类型 描述 expect_result String 测试用例预期结果信息,长度为[0-500]位字符 test_step String 测试步骤描述信息,长度为[0-500]位字符 表8 ExtendAuthorInfo 参数 参数类型 描述 id String id信息 name String 名称信息 time String 时间信息 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表10 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • URI GET /v1/projects/{project_id}/testcase 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 testcase_number 是 String 用例编号,长度为[3-128]位字符
  • 请求示例 批量更新测试用例结果 post https://{endpoint}/v1/projects/efdb403066474ab08836b9eeaaa23bca/testcases/result { "execute_list" : [ { "description" : "这是一条备注信息", "duration" : 10, "end_time" : 16659743037899, "execute_id" : "efdb403066474ab08836b9eeaaa23bca", "result_id" : "0", "testcase_id" : "b66aab5469cc4ab39b0dda8e644a42a4" } ], "service_id" : 13 }
  • 响应参数 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 execute_list 是 Array of UpdateTestCaseResultBean objects 测试用例状态信息,数组长度小于等于50 service_id 是 Integer 注册测试类型服务接口返回的服务id 表4 UpdateTestCaseResultBean 参数 是否必选 参数类型 描述 description 否 String 用于记录该次结果执行的备注信息 duration 否 Long 执行用例持续时长ms,更新状态时该字段必传 end_time 是 Long 用例结束执行的时间戳,在执行结束时该字段必传 execute_id 是 String 注册服务执行id,该值不允许重复,不超过32位字符 result_id 是 String 测试用例结果,(0-成功,1-失败,5-执行中,6-停止) testcase_id 是 String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。
  • 状态码 状态码 描述 200 查询成功。示例1:获取用例历史记录基础示例。示例2:获取用例历史记录,目录(cataName)、状态(statusName)、等级(rank)、处理人(owner)、迭代(versionName)、模块(moduleName)、版本号(releaseDev)、缺陷(defectId)、需求(issueId)、测试步骤(steps)、描述(description)、预置条件(preparation)均有变更的返回示例。 400 Bad Request 401 Unauthorized 404 Not Found 500 Internal Server Error
  • URI POST /v1/{project_id}/testcases/{testcase_id}/histories/batch-query 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID。 最小长度:32 最大长度:32 testcase_id 是 String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。。 最小长度:11 最大长度:34
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 最小长度:1 最大长度:100000 表3 请求Body参数 参数 是否必选 参数类型 描述 offset 是 Integer 起始偏移量,表示从此偏移量开始查询,offset大于等于0,小于等于20000 最小值:0 最大值:20000 limit 是 Integer 每页显示的条目数量,最大支持200条 最小值:1 最大值:200 version_id 是 String 版本ID(分支ID或测试计划ID),长度11-34位字符(字母和数字)。 最小长度:11 最大长度:34
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 起始记录数 大于 实际总条数时, 值为0, 分页请求才有此值 values Array of ExternalTestCaseHistoryVo objects 实际的数据类型:单个对象,集合 或 NULL 表5 ExternalTestCaseHistoryVo 参数 参数类型 描述 author String 资源历史记录创建人ID region String 逻辑region changes Array of ResourceChangeExternalVo objects 历史记录字段变更列表 id String 历史记录id testcase_id String 用例uri,长度11-34位字符(字母和数字)。 creation_date String 创建时间 create_date_timestamp Long 创建时间时间戳 author_name String 创建人名称 project_id String 项目id 表6 ResourceChangeExternalVo 参数 参数类型 描述 field_name String 变更字段 custom_field_type String 测试用例自定义字段类型 old_change_info ElementResourceChangeExternalVo object 变更前的数据信息 new_change_info ElementResourceChangeExternalVo object 变更后的数据信息 表7 ElementResourceChangeExternalVo 参数 参数类型 描述 tracker_name String 工作项类型 value String 值 key String key object_value Object 对象值 object_key Object 对象key tracker_names Object 缺陷类型 board_info Array of objects 归属看板信息,用例关联工作项信息使用 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • 请求示例 项目下创建计划 post https://{endpoint}/v1/projects/efdb403066474ab08836b9eeaaa23bca/plans { "assigned_id" : "efdb403066474ab08836b9eeaaa23bca", "name" : "这是一个测试计划名称", "plan_cycle" : { "end_date" : "2020-03-31", "start_date" : "2020-03-04" }, "service_id_list" : [ 13, 24 ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 assigned_id 否 String 处理者id,不填时默认使用当前用户 name 是 String 计划名称 plan_cycle 是 PlanCycle object 计划周期 service_id_list 是 Array of integers 计划下包含的用例类型,数组长度小于10个 表4 PlanCycle 参数 是否必选 参数类型 描述 end_date 否 String 计划结束时间,要求用UTC时间表示。如2020-03-31 start_date 否 String 计划开始时间,要求用UTC时间表示。如2020-03-04
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 plan_id String 接口调用成功返回的计划id error_code String 接口调用成功不返回,调用失败错误码 error_msg String 接口调用成功不返回,调用失败错误信息 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • 响应示例 状态码: 200 OK { "assigned_user" : { "id" : "ID", "name" : "名称" }, "execute_count" : 4, "extend_info" : { "author" : { "id" : "1111", "name" : "名称", "time" : "2000-01-01 00:00:00" }, "defect_list" : [ { "id" : "ID", "name" : "名称" } ], "description" : "描述信息", "domain" : { "id" : "ID", "name" : "名称" }, "fixed_version" : { "id" : "ID", "name" : "名称" }, "issue" : { "id" : "ID", "name" : "名称" }, "label_list" : [ { "id" : "ID", "name" : "名称" } ], "module" : { "id" : "ID", "name" : "名称" }, "preparation" : "前置条件", "steps" : [ { "expect_result" : "[\"\\u003cp\\u003e预期结果1\\u003c/p\\u003e\",\"\\u003cp\\u003e预期结果2\\u003c/p\\u003e\"]", "test_step" : "[\"\\u003cp\\u003e步骤描述1\\u003c/p\\u003e\",\"\\u003cp\\u003e步骤描述2\\u003c/p\\u003e\"]" } ], "test_version_id" : "97b82412f1", "updator" : { "id" : "1111", "name" : "名称", "time" : "2000-01-01 00:00:00" } }, "name" : "某个测试用例", "project_id" : "2394921", "rank_id" : "2", "result_id" : "0", "service_id" : 13, "status_id" : "1", "testcase_id" : "97b82412f1ca4628803b918c27ed09de", "testcase_number" : "1234" }
  • 请求示例 更新自定义测试服务类型用例 put https://{endpoint}/v1/projects/efdb403066474ab08836b9eeaaa23bca/testcases/1234 { "extend_info" : { "assigned_id" : "b66aab5469cc416hestdda8e644a42a4", "defect_id_list" : [ { "issueId" : "018fd45b181c4f6aa94afac9f769d625", "title" : "缺陷1" }, { "issueId" : "018fd45b181c4f6aa94afac9f769d625", "title" : "缺陷2" }, { "issueId" : "018fd45b181c4f6aa94afac9f769d625", "title" : "缺陷3" } ], "description" : "这是一条描述信息", "fix_version_id" : "1234", "issue_id" : "b66aab5469cc4ab39b0dda8e644a42a4", "label_list" : [ "标签1" ], "module_id" : "b66aab5469cc4ab39b0dda8e644a42a4", "preparation" : "需要满足的前置条件", "status_id" : "0", "steps" : [ { "expect_result" : "[\"\\u003cp\\u003e预期结果1\\u003c/p\\u003e\",\"\\u003cp\\u003e预期结果2\\u003c/p\\u003e\"]", "test_step" : "[\"\\u003cp\\u003e步骤描述1\\u003c/p\\u003e\",\"\\u003cp\\u003e步骤描述2\\u003c/p\\u003e\"]" } ], "test_version_id" : "1.1.0.1" }, "name" : "testcase", "rank_id" : "2", "service_id" : 13, "testcase_number" : "1234" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 extend_info 否 ExternalServiceBizCase object 测试用例其他扩展信息 name 是 String 页面上显示的用例名称,长度为[3-128]位字符 rank_id 否 String 测试用例等级,可选值为[0,1,2,3,4],不填时默认为2 service_id 是 Integer 注册测试类型服务接口返回的服务id,取值范围为10-9999 testcase_number 否 String 用例编号,不填该值时会自动生成,长度为[3-128]位字符 表4 ExternalServiceBizCase 参数 是否必选 参数类型 描述 assigned_id 否 String 处理者id信息,长度0-32位 defect_id_list 否 Array of strings 缺陷id信息,数组长度小于50个 description 否 String 测试用例描述信息,长度为[0-500]位字符 fix_version_id 否 String 迭代号,长度为[0-32]位字符 issue_id 否 String 用例关联的需求id信息,长度为[0-32]位字符 label_list 否 Array of strings 标签名称列表,数组长度小于25 module_id 否 String 模块号,长度为[0-32]位字符 preparation 否 String 执行该测试用例时需要满足的前置条件,长度为[0-500]位字符 status_id 否 String 测试用例状态信息,(0-新建,5-设计中,6-测试中,7-完成) steps 否 Array of ExternalServiceCaseStep objects 测试步骤,数组长度小于10 test_version_id 否 String 测试版本号,长度为[1-64]位字符 表5 ExternalServiceCaseStep 参数 是否必选 参数类型 描述 expect_result 否 String 测试用例预期结果信息,长度为[0-500]位字符 test_step 否 String 测试步骤描述信息,长度为[0-500]位字符
  • 响应参数 状态码: 200 表6 响应Body参数 参数 参数类型 描述 assigned_user AssignedUserInfo object 处理者信息 execute_count Integer 测试用例执行次数 extend_info ExtendInfo object 测试用例扩展信息 name String 测试用例名称 project_id String 软开云项目唯一标识 rank_id String 测试用例等级 result_id String 测试用例执行结果 service_id Integer 注册测试类型服务接口返回的服务id status_id String 测试用例状态 testcase_id String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。 testcase_number String 测试用例编号 表7 ExtendInfo 参数 参数类型 描述 author ExtendAuthorInfo object 创建者信息 defect_list Array of AssignedUserInfo objects 缺陷信息 description String 描述信息 domain AssignedUserInfo object 租户信息 fixed_version AssignedUserInfo object 迭代信息 issue AssignedUserInfo object 需求信息 label_list Array of AssignedUserInfo objects 标签信息 module AssignedUserInfo object 模块信息 preparation String 前置条件 steps Array of ExternalServiceCaseStep objects 测试步骤,数组长度小于10 test_version_id String 测试版本号 updator ExtendAuthorInfo object 更新者信息 表8 AssignedUserInfo 参数 参数类型 描述 id String id信息 name String 名称信息 表9 ExternalServiceCaseStep 参数 参数类型 描述 expect_result String 测试用例预期结果信息,长度为[0-500]位字符 test_step String 测试步骤描述信息,长度为[0-500]位字符 表10 ExtendAuthorInfo 参数 参数类型 描述 id String id信息 name String 名称信息 time String 时间信息 状态码: 400 表11 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 401 表12 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 404 表13 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 error_msg String 接口调用失败错误信息
  • URI PUT /v1/projects/{project_id}/testcases/{testcase_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID。 testcase_id 是 String 用例uri,测试用例唯一标识,长度11-34位字符(字母和数字)。
  • 响应示例 状态码: 200 OK { "environments" : [ { "environment_id" : "ff4893796ee1a8aa009ff3a470de55d8", "environment_name" : "默认环境", "environment_description" : "默认环境", "is_default" : true } ], "offset" : 0, "limit" : 1, "total_count" : 50 }
  • URI GET /v1/projects/{project_id}/environments 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目UUID,项目唯一标识,固定长度32位字符(字母和数字)。获取方式请参见获取项目ID。 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 是 Long 起始偏移量,表示从此偏移量开始查询, offset大于等于0 最小值:0 最大值:999 缺省值:0 limit 是 Long 每页显示的条目数量,最大支持200条 最小值:1 最大值:200 缺省值:200
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 environments Array of Environment objects 环境分组列表 offset Long 偏移量,表示从此偏移量开始查询,offset大于等于0 最小值:0 最大值:999 limit Long 每页显示的条目数量,最大支持200条 最小值:1 最大值:200 total_count Long 环境分组总条数 最小值:0 最大值:100 表5 Environment 参数 参数类型 描述 environment_id String 环境分组id 最小长度:32 最大长度:32 environment_name String 环境分组名 最小长度:3 最大长度:80 environment_description String 环境分组描述 最小长度:0 最大长度:500 is_default Boolean 是否是默认环境 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 接口调用失败错误码 最小长度:12 最大长度:16 error_msg String 接口调用失败错误信息 最小长度:3 最大长度:100 状态码: 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 接口调用失败错误信息
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxx为project的名称,如cn-north-1,您可以从地区和终端节点中获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 请求URI由四部分构成:{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}。 各参数含义如下: 参数 说明 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点中获取。 例如,IAM服务在华北-北京一区域的Endpoint为iam.cn-north-1.myhuaweicloud.com。 resource-path 资源路径,即API访问路径,从具体API的URI模块获取。例如,获取用户Token接口的resource-path为/v3/auth/tokens。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个?,形式为参数名=参数取值。例如,limit=10表示查询不超过10条数据。 例如:如果需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示: https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。详情如下: 请求方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 在获取用户Token的URI部分,若请求方法为POST,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如,定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中: 名称 描述 是否必选 备注 Content-Type 消息体的类型(格式) 是 默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token 用户Token 否 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 X-Project-ID 子项目ID 否 在多项目场景中使用 X-Domain-ID 帐号ID - - 公有云API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参加AK/SK认证。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 响应示例 状态码: 200 OK { "total" : 1, "project_id" : "1f22e3511dd348e38131b4066afbd0b4", "values" : [ { "id" : "001s16gt6q5", "type" : "TestVersion", "author" : "efdb403066474ab08836b9eeaaa23bca", "name" : "名称", "region" : "cn-north-7", "last_modifier" : "张三", "last_modified" : "2023-07-20 02:17:01", "last_modified_timestamp" : 1660617231016, "creation_date" : "2023-07-20 02:17:01", "creation_date_timestamp" : 1660617231016, "author_name" : "tester", "is_base_branch" : 0 } ] }
共100000条