ONES API
概述
- ONES API 基于 REST 风格编写,大部分接口都需要在登录状态下使用。
ONES 常见的对象有
项目 project、工作项 task、工作项属性 field、工作项类型 issue_type、工作项状态 task_status等等,一般这些对象都会拥有 ID,在 ONES API 体系中,我们称之为 UUID,注意这里的 UUID 与业界定义的 ID 是不同的,这是内部的命名方式,一般我们指的 UUID 是长度为8个字符或16个字符的串。创建工作项的流程:先获取到项目 UUID 以及工作项类型的 UUID,然后调用创建工作项的接口,传入相关参数参数来创建工作项。
URI 结构
ONES REST API 通过 URI 路径提供对资源的访问,使用 {} 或 :name 将 URI 路径的一部分标记为可使用参数替换的部分,URI 路径遵循以下规则:
http(s)://{your-host-name}/project/api/project/{api-path}
例如:
https://my-host-name/project/api/project/auth/login
https://my-host-name/project/api/project/users/me
https://your-host-name/project/api/project/team/:teamUUID/projects/info
所有请求都是基于 http 或者 https。 {your-host-name}为 ONES 部署机器的域名 或者 ip:port。
通过授权
如果您需要调用 ONES API接口, 通常用户登录是必须的。您可以通过调用 ONES 用户登录接口完成用户登录。 如果您是合法用户,登录接口返回值会包含 user.uuid 和 user.token, 此二值用于 ONES 用户登录凭证。
ONES API 接口登录凭证作为 HTTP Header 为接口调用提供身份校验:
| 参数名 | 参数位置 | 值类型 | 描述 |
|---|---|---|---|
| Ones-User-Id | HTTP Headers | string | 用户 uuid |
| Ones-Auth-Token | HTTP Headers | string | 登录成功的 token |
| Referer | HTTP Headers | string | 请求地址url,示例:https://your-host-name |
接口调用示例 - 通过授权
通过授权,调用获取当前用户信息接口。
curl -X GET \
https://your-host-name/project/api/project/users/me \
-H 'Ones-Auth-Token: ILg1uaO9d8MOG6rqQoe6Ozqkv27sTbgiKeDDgapEtIYnkyu8m6d51nq7og0koETZ' \
-H 'Ones-User-Id: DU6krHBN' \
-H 'Referer: https://your-host-name' \
-H 'cache-control: no-cache'
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 请求参数格式异常错误(json解析失败) |
| 401 | 用户名/密码失败, 或登录token不正确 |
| 403 | 登录验证成功但没有权限访问资源 |
| 404 | url无效 |
| 409 | 账户已经存在, 或文件已经存在 |
| 500 | 服务器内部错误 |
| 600 | 无效的电子邮箱 |
| 605 | 验证码不正确 |
| 606 | 验证码已过期 |
| 607 | UUID格式不正确,表示添加project/task时,对应的uuid没有将用户uuid加到此uuid的头部时 |
| 608 | UUID重复,表示添加project/task时,对应的uuid已存在云端 |
| 609 | Project UUID Not Found |
| 610 | Task UUID Not Found |
| 611 | Project/Task字段的值没有符合约定 |
| 612 | 邀请码不可用 |
| 613 | 邀请码已过期 |
| 614 | 当前用户已经加入了一个正式team |
| 615 | 邮箱/手机号没有注册 |
| 616 | 重置验证码无效 |
| 617 | 重置验证码过期 |
| 618 | Something need to be handed over |
| 619 | API cannot be used in personal team |
| 620 | Not exist |
| 621 | Email/phone exist |
| 622 | Invalid phone |
| 623 | Invalid message type |
| 624 | Not Found Invite code |
| 625 | Ticket is expired |
| 626 | Invalid Ticket |
| 627 | Exchange code expired |
| 628 | Exchange code is invalid |
| 629 | Exchange code not found |
| 630 | Not Found Record |
| 623 | Invalid message type |
| 800 | Some params is miss |
| 801 | Params is invalid |
| 802 | Auth info is miss |
| 803 | Nothing updated |
| 804 | IP Ban |
| 805 | Search timeout |
| 806 | User Exists |
| 807 | Not Found Team |
| 808 | Not Team Owner |
| 809 | Not Project Owner |
| 810 | Not Project Member |
| 811 | Project Not In Team |
| 812 | User Not In Team |
| 813 | Account Expire |
| 814 | Account Leave Team |
| 815 | Project Not Bing Template |
| 816 | Template Not Target |
| 817 | Not Modify Data |
| 818 | Field Duplicated |
| 819 | Not Access Modify |
| 820 | Not Valid Stamp |
| 821 | Not Allow Related Itself |
| 822 | Milestone Not In Team |
| 823 | Not Milestone Member |
| 824 | Team Fulled |