PingCodeRESTAPI
PingCode 官网官方接口文档
PingCode 官网官方接口文档
    • 概述
    • 鉴权
      • 客户端凭据
        • 获取企业令牌
      • 授权码
        • 登录
        • 请求授权(get_transaction_id)
        • 私有部署-请求授权(get_transaction_id)
        • authorized(get_code)
        • 私有部署-authorized(get_code) 
        • 获取用户令牌 (Get token)
        • 刷新用户令牌 (Refresh_access_token)
    • 全局
      • 个人
        • 获取个人基本信息
      • 组织
        • 企业
          • 获取企业信息
        • 企业成员
          • 创建一个企业成员
          • 部分更新一个企业成员
          • 批量更新企业成员属性
          • 获取企业成员列表
          • - 获取一个企业成员
        • 部门
          • 创建一个部门
          • 部分更新一个部门
          • 获取部门列表
          • - 获取一个部门
          • 删除一个部门
        • 团队
          • 创建一个团队
          • 部分更新一个团队
          • 获取团队列表
          • - 获取一个团队
          • 添加一个团队成员
          • 获取团队成员列表
          • - 获取一个团队成员
          • 移除一个团队成员
        • 角色
          • 获取角色列表
          • - 获取一个角色
        • 职位
          • 获取职位列表
          • - 获取一个职位
      • 安全
        • 日志
          • 获取登录日志列表
          • 获取审计日志列表
      • 通用
        • 评论
          • 创建一个评论
          • 获取评论列表
          • - 获取一个评论
          • 删除一个评论
        • 附件
          • 上传一个附件
          • 上传一个代码段
          • 获取附件列表
          • - 获取一个附件
          • 删除一个附件
        • 关注人
          • 添加一个关注人
          • 获取关注人列表
          • - 获取一个关注人
          • 移除一个关注人
        • 关联
          • 创建一个关联
          • 获取关联列表
          • - 获取一个关联
          • 删除一个关联
        • 工时
          • 创建一个工时
          • 部分更新一个工时
          • 获取工时列表
          • - 获取一个工时
          • 删除一个工时
          • 获取工时类型列表
          • - 获取一个工时类型
    • 产品管理 Product
      • 产品
        • 创建一个产品
        • 部分更新一个产品
        • 获取产品列表
        •  -获取一个产品
        • 获取产品中的需求排期列表
        •  - 获取产品中的一个需求排期
        • 获取产品中工单渠道列表
        •  - 获取产品中一个工单渠道
        • 获取产品中工单类型列表
        • - 获取产品中工单一个类型列表
        • 获取产品中的标签列表
        • - 获取产品中的一个标签
      • 客户
        • 创建一个客户
        • 部分更新一个客户
        • 获取客户列表
        • - 获取一个客户
      • 工单
        • 创建一个工单
        • 部分更新一个工单
        • 获取工单列表
        • - 获取一个工单
        • 获取工单类型列表
        • - 获取一个工单类型
        • 获取工单状态列表
        • - 获取一个工单状态
        • 获取工单属性列表
        • - 获取一个工单属性
        • 获取工单渠道列表
        • - 获取工单一个渠道
        • 获取工单优先级列表
        • - 获取工单一个优先级
        • 获取工单解决方案列表
        • - 获取工单一个解决方案
        • 获取工单标签列表
        • - 获取工单一个标签
        • 获取工单流转记录列表
      • 需求
        • 创建一个需求
        •  部分更新一个需求
        • 获取需求列表
        • - 获取一个需求
        • 获取需求状态列表
        • - 获取需求一个状态
        • 获取需求属性列表
        • - 获取需求一个属性
        • 获取需求模块列表
        • - 获取需求一个模块
        • 获取需求排期列表
        • - 获取需求一个排期
        • 获取需求优先级列表
        • - 获取需求一个优先级
      • 产品配置中心
        • 工单配置
          • 获取全部工单类型列表
          • 创建一个工单状态
          • 部分更新一个工单状态
          • 获取全部工单状态列表
          • 获取工单状态方案列表
          • 向状态方案中添加一个工单状态
          • 获取状态方案中的工单状态列表
          • 在状态方案中移除一个工单状态
          • 向状态方案中添加一个工单状态流转
          • 获取状态方案中的工单状态流转列表
          • 在状态方案中移除一个工单状态流转
          • 创建一个工单属性
          • 部分更新一个工单属性
          • 获取全部工单属性列表
          • 获取工单属性方案列表
          • 向工单属性方案中添加一个工单属性
          • 获取工单属性方案中的工单属性列表
          • - 获取一个工单类型
          • - 获取一个工单状态
          • - 获取一个工单属性
          • 在工单属性方案中移除一个工单属性
        • 需求配置
          • 获取全部需求状态列表
          • - 获取一个需求状态
          • 获取全部需求属性列表
          • - 获取一个需求属性
      • 需求属性
        • 获取一个需求属性
        • 获取需求属性列表
      • 工单优先级
        • 获取一个工单优先级
        • 获取工单优先级列表
      • 需求优先级
        • 获取一个续期优先级
        • 获取需求优先级列表
      • 工单解决方案
        • 获取一个工单解决方案
        • 获取工单解决方案列表
      • 产品成员
        • 获取一个产品成员
      • 产品标签
        • 获取一个产品标签
        • 获取产品标签列表
      • 产品排期
        • 获取一个产品排期
        • 获取产品排期列表
      • 产品模块
        • 获取一个产品模块
        • 获取产品模块列表
      • 工单关注人
        • 获取一个工单关注人
      • 需求关注人
        • 获取一个需求关注人
    • 项目管理 Project
      • 项目
        • 创建一个项目
        • 部分更新一个项目
        • 获取项目列表
        • 获取项目状态列表
        • - 获取一个项目
        • 向项目中添加一个成员
        • 部分更新一个项目内的成员
        • 获取项目中的成员列表
        • - 获取一个项目成员
        • 在项目中移除一个成员
        • 向项目中添加一个项目属性
        • 获取项目中的项目属性列表
        •  - 获取项目中一个项目属性
        • 在项目中移除一个项目属性
        • 获取一个项目的进度
      • Scrum
        • 创建一个迭代
        • 批量创建迭代
        • 部分更新一个迭代
        • 获取迭代列表
        • - 获取一个迭代
        • 创建一个迭代分组
        • 部分更新一个迭代分组
        • 获取迭代分组列表
        • - 获取一个迭代分组
        • 删除一个迭代分组
        • 创建一个迭代类别
        • 部分更新一个迭代类别
        • 获取迭代类别列表
        • - 获取一个迭代类别
        • 删除一个迭代类别
      • Kanban
        • 创建一个看板
        • 部分更新一个看板栏
        • 获取看板列表
        • - 获取一个看板
        • 删除一个看板
        • 创建一个看板栏
        • 部分更新一个看板栏
        • 获取看板栏列表
        • - 获取一个看板栏
        • 删除一个看板栏
        • 创建一个泳道
        • 部分更新一个泳道
        • 获取泳道列表
        • - 获取一个泳道
        • 删除一个泳道
      • 瀑布
        • 向瀑布项目中增加一个工作项类型
        • 获取瀑布项目中的工作项类型列表
        • - 获取瀑布项目中的一个工作项类型
        • 在瀑布项目中移除一个工作项类型
        • 获取工作项流转记录列表
      • 工作项
        • 创建一个工作项
        • 部分更新一个工作项
        • 批量部分更新一个工作项属性
        • 获取工作项列表
        • - 获取一个工作项
        • 删除一个工作项
        • 获取工作项类型列表
        • - 获取一个工作项类型
        • 获取工作项状态列表
        • - 获取一个工作项状态
        • 获取工作项属性列表
        • - 获取一个工作项属性
        • 获取工作项优先级列表
        • - 获取一个工作项优先级
        • 获取工作项标签列表
        • - 获取工作项一个标签
        • 向工作项中添加一个标签
        • 在工作项移除一个标签
        • 关联一个工作项
        • 获取关联的工作项列表
        • 取消关联一个工作项
        • 创建一个工作项交付目标
        • 部分更新一个工作项交付目标
        • 获取工作项交付目标列表
        • - 获取工作项一个交付目标
        • 删除一个工作项交付目标
        • 获取工作项流转记录列表
      • 发布
        • 创建一个发布
        • 批量创建发布
        • 部分更新一个发布
        • 获取发布列表
        • - 获取一个发布
        • 创建一个发布阶段
        • 部分更新一个发布阶段
        • 获取发布阶段列表
        • - 获取一个发布阶段
        • 删除一个发布阶段
        • 创建一个发布分组
        • 部分更新一个发布分组
        • 获取发布分组列表
        • - 获取一个发布分组
        • 删除一个发布分组
        • 创建一个发布类别
        • 部分更新一个发布类别
        • 获取发布类别列表
        • - 获取一个发布类别
        • 删除一个发布类别
      • 项目配置中心
        • 项目配置
          • 创建一个项目属性
          • 部分更新一个项目属性
          • 获取项目属性列表
          • - 获取一个项目属性
        • 工作项配置
          • 创建一个工作项标签
          • 部分更新一个工作项标签
          • 获取全部工作项标签列表
          • 删除一个工作项标签
          • 创建一个工作项类型
          • 部分更新一个工作项类型
          • 获取全部工作项类型列表
          • 删除一个工作项类型
          • 创建一个工作项状态
          • 部分更新一个工作项状态
          • 获取全部工作项状态列表
          • 向状态方案中添加一个工作项状态
          • 获取状态方案中的工作项状态列表
          • 在状态方案中移除一个工作项状态
          • 向状态方案中添加一个工作项状态流转
          • 获取状态方案中的工作项状态流转列表
          • 在状态方案中移除一个工作项状态流转
          • 创建一个工作项属性
          • 部分更新一个工作项属性
          • - 获取一个工作项属性
          • 获取全部工作项属性列表
          • 获取工作项属性方案列表
          • 向属性方案中添加一个工作项属性
          • 获取属性方案中的工作项属性列表
          • 在属性方案中移除一个工作项属性
    • 测试管理 Testhub
      • 测试库
        • 创建一个测试库
        • 部分更新一个测试库
        • 获取测试库列表
        • - 获取一个测试库
        • 向测试库中添加一个成员
        • 获取测试库中的成员列表
        • - 在测试库中获取一个成员
        • 在测试库中移除一个成员
        • 向测试库中添加一个用例模块
        • 部分更新一个测试库中用例模块
        • 获取测试库中的用例模块列表
      • 用例
        • 创建一个测试用例
        • 批量创建测试用例
        • 部分更新一个测试用例
        • 获取测试用例列表
        • - 获取一个测试用例
        • 删除一个测试用例
        • 获取用例模块列表
        • - 获取一个用例模块
        • 获取用例属性列表
        • 获取用例的执行历史列表
        • 批量创建测试用例关联工作项
        • 批量删除测试用例关联工作项
      • 计划
        • 创建一个计划
        • 部分更新一个计划
        • 获取计划列表
        • 获取计划类型列表
        • 创建一个执行用例
        • 批量创建执行用例
        • 全量更新一个执行用例
        • 部分更新一个执行用例
        • 批量部分更新执行用例
        • 批量操作执行用例
        • 获取执行用例列表
        • 获取执行用例的结果记录
      • 配置中心
        • 用例配置
          • 获取全部用例属性列表
          • 获取用例类型列表
          • 获取用例属性方案列表
          • 获取用例属性方案列表
    • 知识管理 Wiki
      • 页面关注人
      • 空间
        • 创建一个空间
        • 部分更新一个空间
        • 获取空间列表
        • - 获取一个空间
        • 删除一个空间
      • 页面
        • 创建一个页面
        • 部分更新一个页面
        • 更新一个文档正文
        • 获取一个文档正文
        • 获取一个页面的版本列表
        • 恢复一个页面到指定版本
        • 获取页面列表
        • 删除一个页面
      • 页面关注人(全局)
        • 获取一个页面关注人
        • 添加一个页面关注人
      • 页面附件(全局)
        • 获取一个页面附件列表
        • 添加一个页面附件
    • DevOps 数据集成
      • 代码
        • 托管平台
          • 创建一个托管平台
          • 全量更新一个托管平台
          • 部分更新一个托管平台
          • 获取一个托管平台
          • 获取托管平台列表
        • 托管平台用户
          • 创建一个托管平台用户
          • 全量更新一个托管平台用户
          • 部分更新一个托管平台用户
          • 获取托管平台用户列表
          • - 获取一个托管平台用户
        • 代码仓库
          • 创建一个代码仓库
          • 全量更新一个代码仓库
          • 部分更新一个代码仓库
          • 获取代码仓库列表
          • - 获取一个代码仓库
        • 代码分支
          • 创建一个代码分支
          • 设置默认代码分支
          • 获取代码分支列表
          • - 获取一个代码分支
          • 删除一个代码分支
        • 提交
          • 创建一个提交
          • 获取提交列表
          • - 获取一个提交
        • 提交引用
          • 创建一个提交引用
          • 获取提交引用列表
          • - 获取一个提交引用
        • 拉取请求
          • 创建一个拉取请求
          • 全量更新一个拉取请求
          • 部分更新一个拉取请求
          • 获取一个拉取请求
          • 获取拉取请求列表
        • 代码评审
          • 创建一个代码评审
          • 全量更新一个代码评审
          • 部分更新一个代码评审
          • 获取一个代码评审
          • 获取代码评审列表
      • 构建
        • 构建记录
          • 创建一条构建记录
          • 全量更新一条构建记录
          • 部分更新一条构建记录
          • 获取一条构建记录
          • 获取构建记录列表
          • 删除一条构建记录
      • 交付
        • 环境
          • 创建一个环境
          • 全量更新一个环境
          • 部分更新一个环境
          • 获取一个环境
          • 获取环境列表
          • 删除一个环境
        • 部署
          • 创建一个部署
          • 全量更新一个部署
          • 部分更新一个部署
          • 获取一个部署
          • 获取部署了列表
          • 删除一个部署

    概述

    欢迎使用#

    欢迎使用PingCode Representational State Transfer APIs (简称PingCode REST API)。 PingCode REST API用于通过HTTP与PingCode服务端进行远程交互,例如创建、修改、查询、删除PingCode的资源。

    接口调用流程#

    image.png

    URI结构#

    PingCode REST API通过URI路径提供对资源的访问,使用{}将URI路径的一部分标记为可使用参数替换的部分,URI路径遵循以下规则:
    https://rest_api_root/v1[/{area}]/{resource}
    例如:
    https://open.pingcode.com/v1/scm/products
    https://open.pingcode.com/v1/scm/products/{product_id}/repositories
    https://open.pingcode.com/v1/release/environments
    rest_api_root表示根路径,在不同的环境中根路径有所不同:
    公有云的REST API根路径:https://open.pingcode.com
    私有部署的REST API根路径:https://xxxxxx/open

    数据结构#

    PingCode REST API使用json作为通讯格式,所有时间均使用10位数字组成的时间戳。 PingCode REST API为每一种资源定义两种数据结构,全量结构和引用结构。 全量结构包含资源的所有属性,引用结构只包含必要属性。当获取单个资源或分页获取资源列表时,PingCode REST API将返回全量结构; 当获取其他资源引用当前资源时,PingCode REST API将返回引用结构。

    全量结构#

    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称",
         "desc": "资源简介",
         "created_at": 1578897962
    }

    引用结构#

    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称"
    }

    使用方式#

    PingCode REST API支持 OPTIONS/GET/PUT/PATCH/POST/DELETE等标准的HTTP请求。 对于GET/DELETE请求,通过querystring传递参数;对于POST/PUT/PATCH请求,需要在headers中添加"content-type": "application/json",然后通过body传递参数。 PingCode REST API使用HTTP状态码指示已执行操作的状态; 使用response body传递数据。

    单个资源#

    当创建、更新、获取、删除单个资源成功时,会返回当前操作的资源。
    HTTP状态码:201
    Body:
    {
         "id": "5e05d8448f8461dada9ba29c",
         "url": "https://rest_api_root/v1/{resource}",
         "name": "资源名称",
         "desc": "资源简介",
         "created_at": 1578897962
    }

    分页数据#

    当请求多条数据时,默认每一页返回30条,最大返回100条。 通过在querystring中设置page_size和page_index,指定每一页的数据量和第几页的数据(page_index为0时,表示第一页)。 在返回的数据结构中,page_size表示当前每页的数据量,page_index表示当前在第几页,total表示资源总数量,values表示资源的数组。
    HTTP状态码:200
    Body:
    {
         "page_size": 30,
         "page_index": 0,
         "total": 100,
         "values": [
             {
                 "id": "5e05d8448f8461dada9ba29c",
                 "url": "https://rest_api_root/v1/{resource}",
                 "name": "资源名称",
                 "desc": "资源简介",
                 "created_at": 1578897962
             },
             ...
         ]
    }

    错误#

    当请求失败时,会返回错误码和错误信息。
    HTTP状态码:500
    Body:
    {
         "code": "100000",
         "message": "Internal Server Error"
    }

    频率限制#

    PingCode REST API限制使用者的请求频率,目的是保障核心服务的可靠且响应迅速。频率限制不用于区分客户和服务级别。

    具体策略#

    根据使用者的身份标识,PingCode REST API最多允许每位使用者每分钟请求200次,单位分钟内超出限制数量的HTTP请求将统一返回错误信息。
    HTTP状态码:429
    Headers:
    {
         "x-pc-retry-after": 50
    }
    Body:
    {
         "code": "100038",
         "message": "请求频率过高"
    }
    x-pc-retry-after指示使用者在重新请求之前必须等待的秒数。如果使用者在到期之前重新发出请求,则请求会再次失败并返回相同的HTTP状态码和response body。

    合理请求#

    由于频率限制的存在,最小化请求将十分必要,一个显而易见的策略是缓存不会轻易变更的数据。 另外使用PingCode Flow中的发送Webhook和发送HTTP请求来将PingCode中发生变更的数据发送给订阅者,也可以有效降低 PingCode REST API的请求数量,从而降低遇到频率限制的风险。
    下一页
    客户端凭据
    Built with