云服务器内容精选

  • 文档修订记录 文档修订记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内容。 修订记录 发布日期 第二十五次正式发布。本次变更说明如下:增加了SDK代码示例。 2024-03-08 第二十四次正式发布。本次变更说明如下: 增加了添加指定工作项工时。 增加了查询项目下的工时类型。 增加了获取指定工作项停留时间。 增加了高级查询我的待办工作项。 增加了查询项目模板。 2023-06-08 第二十三次正式发布。本次变更说明如下: issueUser对象中增了两个字段:user_id和user_num_id。 2022-12-06 第二十二次正式发布。本次变更说明如下: 增加了下载工作项附件。 增加了删除附件。 增加了查询当前工作项已经关联的代码提交记录 / 分支创建记录。 2022-11-04 第二十一次正式发布。本次变更说明如下: 增加响应示例和请求示例。 2022-10-28 第二十次正式发布。本次变更说明如下: 增加了下载图片。 增加了上传工作项附件。 增加了Scrum项目的领域。 2022-09-16 第十九次正式发布。本次变更说明如下: 修改了API概览。 修改了终端节点。 NewCustomField中增加了字段“field_name”。 2022-08-23 第十八次正式发布。本次变更说明如下: 修改了API概览。 增加了Scrum项目的模块。 2022-06-30 第十七次正式发布。本次变更说明如下: 增加了查询项目的工作项。 增加了查询项目下所有工作项的历史记录。 增加了查询Scrum项目的工作项流转配置。 增加了查询当前工作项已经关联的工作项。 增加了查询当前工作项已经关联的关联Wiki。 增加了查询当前工作项已经关联的代码提交记录 / 分支创建记录。 增加了查询关联用例。 增加了查询Scrum工作项自定义字段。 增加了查询看板项目下工作项的状态历史记录。 增加了查询看板项目下的工作项。 增加了查询看板项目的工作项流转配置。 修改了创建工作项。 2022-06-06 第十六次正式发布。本次变更说明如下: 增加了查看迭代历史记录。 增加了更新子用户昵称。 修改了高级查询工作项。 修改了获取指定项目的迭代列表。 2022-02-28 第十五次正式发布。本次变更说明如下: 修改了高级查询工作项。 修改查询缺陷密度。 2021-11-26 第十四次正式发布。本次变更说明如下: 增加了细粒度权限用户创建工作项。 修改了错误码。 2021-11-10 第十三次正式发布。本次变更说明如下: 修改了API字段信息。 迭代详情和迭代列表添加了返回字段status。 获取工作项的历史记录添加了id和name。 2021-09-28 第十二次正式发布。本次变更说明如下: 修改了错误码。 2021-06-11 第十一次正式发布。本次变更说明如下: 修改了错误码。 2021-05-12 第十次正式发布。本次变更说明如下: 修改了错误码。 2021-05-08 第九次正式发布。本次变更说明如下: 修改了接口字段信息。 2021-04-22 第八次正式发布。本次变更说明如下: 删除约束与限制。 2021-03-26 第七次正式发布。本次变更说明如下: 修改API概览。 2021-03-10 第六次正式发布。本次变更说明如下: 修改应用示例。 2021-02-05 第五次正式发布。本次变更说明如下: 增加应用示例。 2020-08-31 第四次正式发布。本次变更说明如下: 修改“4.1 API”。 2020-08-18 第三次正式发布。本次变更说明如下: 修改基本概念。 修改构造请求。 修改认证鉴权。 2020-08-06 第二次正式发布。本次变更说明如下: 修改终端节点。 2020-07-01 第一次正式发布。 2020-03-30
  • 调用API取项目ID 项目ID还用通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects/”,其中“{Endpoint}”为 IAM 的终端节点,可以从终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中“projects”下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 步骤1:查询用户的工作项列表 接口信息 URI:Post /v4/projects/{project_id}/issues API文档详情请参见:高级查询工作项 API Explorer 在线调试请参见: 高级查询工作项 请求示例 Post https://projectman-ext.cn-north-4.myhuaweicloud.com/v4/projects/526cefde62004de2b62b5e8dd2c2b3af/issues 请求体: { "status_ids": [1], "limit":1 } 响应示例 { "issues": [ { "id": 1692040, "name": "测试", "done_ratio": 0, "tracker": { "id": 2, "name": "Task" }, "priority": { "id": 2, "name": "中" }, "severity": { "id": 12, "name": "一般" }, "status": { "id": 1, "name": "新建" }, "updated_time": "2020-09-17 10:18:31", "begin_time": "1970-01-01", "end_time": "1970-01-01", "project": { "project_num_id": 3694732, "project_id": "526cefde62004de2b62b5e8dd2c2b3af", "project_name": "sdfsdfdsf" }, "parent_issue": { "id": 1684959, "name": "testDemo阿达萨达" }, "module": { "id": null, "name": null }, "domain": { "id": null, "name": null }, "iteration": { "id": null, "name": null }, "expected_work_hours": 0.0, "actual_work_hours": 0.0, "created_time": "2020-09-17 10:18:31", "custom_fields": [], "assigned_cc_user": null, "assigned_user": { "id": 4091, "name": "test001", "nick_name": "pcedgeXXXXXXX" }, "creator": { "id": 4091, "name": "test001", "nick_name": "pcedgeXXXXXXX" }, "developer": { "id": 0, "name": null, "nick_name": null } } ], "total": 24 }
  • 操作步骤 请求示例 GET https://projectman-ext.cn-north-4.myhuaweicloud.com/v4/projects/3cea7d4d77134eee8251825918a8bd7a/iterations 响应示例 { "iterations": [ { "id": 707961817, "name": "迭代1", "description": "", "begin_time": "2020/06/07", "end_time": "2020/07/06" }, { "id": 707961818, "name": "迭代2", "description": "", "begin_time": "2020/07/07", "end_time": "2020/08/06" }, { "id": 707961819, "name": "迭代3", "description": "", "begin_time": "2020/08/07", "end_time": "2020/09/06" } ], "total": 3 }
  • 操作步骤 请求示例 GET https://projectman-ext.cn-north-4.myhuaweicloud.com/v4/projects?project_type=scrum&search=ProjectTestCase&offset=0&limit=1 响应示例 { "projects": [ { "project_num_id": 3844012, "project_id": "ec147b681fb64e019a6bcd73ebdf3597", "project_name": "ProjectTestCaseYRXl", "description": "fdas", "created_time": 1600417972000, "updated_time": 1600417972000, "project_type": "scrum", "creator": { "user_num_id": 4090, "user_id": "665b542eb4c14b53a15ead449f28b0ba", "user_name": "test001", "domain_id": "70d11a2d7275425689347ec104af2ad8", "domain_name": "projectman_l00382124_01", "nick_name": "英国队长" } } ], "total": 48 }
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token获取请求认证接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-1", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ....
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),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在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token获取请求认证接口的响应值,该接口是唯一不需要认证的接口。 公有云API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权。 X-Project-ID:子项目ID,可选,在多项目场景中使用。 X-Domain-ID:账号ID。 对于获取用户Token获取请求认证接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token获取请求认证的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region。 通用Region指面向公共租户提供通用云服务的Region。 专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 用户在需求管理中创建的项目,根据模板创建项目,根据您选择的项目模板,还包含有预置的工作项、代码或资源等。通过管理项目IAM用户(即“团队成员”)所需的权限。将IAM用户作为团队成员添加到项目,给每个团队成员分配角色并赋予项目及其资源的操作权限。 项目模板 使用模板创建项目,模板项目是指默认预置模板类型的项目,即基于Scrum和看板形式,由需求管理预置好一些工作项和流程。选择项目模板后,会自动生成对应样例模板,供用户参考和使用,用户也可以新建自己的开发任务。 企业项目 企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 父主题: 使用前必读
  • 终端节点 终端节点即调用API的请求地址,不同服务不同区域的终端节点不同。 需求管理的终端节点如表1所示,请您根据业务需要选择对应区域的终端节点。 表1 需求管理的终端节点 区域名称 区域 终端节点(Endpoint) 华北-北京一 cn-north-1 projectman-ext.cn-north-1.myhuaweicloud.com 华北-北京四 cn-north-4 projectman-ext.cn-north-4.myhuaweicloud.com 华东-上海一 cn-east-3 projectman-ext.cn-east-3.myhuaweicloud.com 华东-上海二 cn-east-2 projectman-ext.cn-east-2.myhuaweicloud.com 华南-广州 cn-south-1 projectman-ext.cn-south-1.myhuaweicloud.com 西南-贵阳一 cn-southwest-2 projectman-ext.cn-southwest-2.myhuaweicloud.com 父主题: 使用前必读