响应和错误
响应的结构以及状态码
响应是普通的 JSON,HTTP 状态码表明调用是否成功。
响应
成功的调用返回对象本身,或者一个带有其大小的列表:
{ "count": 2, "records": [ { "id": 41 }, { "id": 42 } ] }
错误会返回一条消息,如有详细信息也会一并返回:
{ "error": "The form data is not valid", "details": [ ... ] }
状态码
状态码说明出了什么问题:
| 代码 | 含义 |
|---|---|
200 | 调用成功 |
400 | 请求格式错误,例如刷新令牌时没有刷新令牌,或上传时没有文件 |
401 | 令牌缺失、错误或已过期:请登录或刷新令牌 |
403 | 用户的角色不允许该调用(包括批准您自己的作业,除非其批准设置了 allowSelf: true 或您是管理员),或者该账户必须先做某件事(见下文) |
404 | 对象不存在 |
409 | 请求不完整(没有数据的启动),或者对象所处的状态不允许该操作 |
422 | 运行验证 拒绝了表单的值;details 列出了原因 |
429 | 对登录和令牌端点的请求过多,或登录失败次数过多(参见 身份验证) |
500 | 服务器出错;服务器日志中有原因 |
对于作业,409 表示它处于不适合该操作的状态:中止一个没有在运行的作业(或已请求过中止的作业)、 重新运行一个仍在运行的作业,或者批准或拒绝一个已不再等待批准的作业。
带代码的 403
有些 403 响应带有 code,表示用户必须先在浏览器中完成某件事,其他调用才能正常工作:
{ "error": "...", "code": "password_change_required" }
| 代码 | 怎么做 |
|---|---|
password_change_required | 用户使用公开的默认密码登录:请先在个人资料中修改密码 |
disclaimer_required | 免责声明已开启,而用户尚未接受其当前版本:请在浏览器中接受它 |
长期 API 令牌(参见 身份验证)从不会被免责声明拦住。