- 错误码暂定都是5位数字,并配有相应的英文解释。
- 错误码为 0 表示成功,其他都表示错误。
- 错误码按模块按功能场景分级分段,前三位错误码表示模块,第四位表示模块下的功能。举例,商城系统里有交易模块和商品模块,则可以这样划分:401开头的表示交易模块,402开头的表示商品模块,4011开头的表示交易模块里的下单场景需要用到的错误码,4021表示商品模块下的添加商品场景里需要用到的错误码。如果某个场景功能下需要的比较多的错误码,则可以使用其他未被使用的码段,即该场景功能可以拥有多个码段,然后通过添加注释等方式让人理解即可。
- 数字 1 开头的错误码表示系统级别的错误,比如缺少某种字符集,连不上数据库之类的,系统级的错误码不需要分模块,可以按照自增方式进行添加。
- 数字 4 开头的错误码表示API参数校验失败,比如 “交易模块下单场景中,订单金额参数不能为空” 可以用 40111 错误码来表示。
- 数字 5 开头的错误码表示后台业务校验失败,比如 “交易模块下单场景中,该用户没有下单权限” 可以用 50111 错误码来表示。
- 数字 4 开头的错误码与数字 5 开头的错误码对应的模块分类需要保持一致,即 4011 表示交易模块下单场景的API错误,5011表示交易模块下单场景的业务错误。
- 错误码按需分配,逐步增加,灵活扩展。
网上确实没有比较成熟或者通用的设计方法,只能参考目前几大互联网巨头们的设计方法,然后结合实际需求设计出符合自己公司的解决方案。
把我目前设计的错误码方案分享给大家:
统一格式:A-BB-CCC
A:错误级别,如1代表系统级错误,2代表服务级错误;
B:项目或模块名称,一般公司不会超过99个项目;
C:具体错误编号,自增即可,一个项目999种错误应该够用;
参考:
淘宝开放平台
公共返回码说明
Error code - 微博API
http://my.oschina.net/foxty/blog/382344
中国电信天翼开放平台
一、授权/令牌请求接口返回码
描述应用发起授权请求或令牌请求时,开放平台的返回码。
错误码 | 错误描述 | Error Description |
---|---|---|
10000 | 非法的请求参数 | Invalid request |
10001 | 用户认证失败 | Invalid client |
10002 | 非法的授权信息 | Invalid grant |
10003 | 应用没有被授权,无法使用所指定的grant_type | Unauthorized client |
10004 | grant_type字段超过定义范围 | Unsupported grant_type |
10005 | scope信息无效或超出范围 | Invalid scope |
10006 | 提供的更新令牌已过期 | Expired token |
10007 | redirect_uri字段与注册应用时所填写的不匹配 | Redirect_uri mismatch |
10008 | response_type参数值超过定义范围 | Unsupported response type |
10009 | 用户或授权服务器拒绝授予数据访问权限 | Access denied |
API通用返回码
描述API接口的共性返回码,API自定义的接口返回码请参阅对应API接口文档描述。
错误码 | 错误描述 | Error Description |
---|---|---|
0 | 成功 | Success |
1 | 未知错误 | Unknown error |
2 | 服务暂不可用 | Service temporarily unavailable |
3 | 未知的方法 | Unsupported openapi method |
4 | 接口调用次数已达到设定的上限 | Open api request limit reached |
5 | 请求来自未经授权的IP地址 | Unauthorized client IP address |
6 | 无权限访问该用户数据 | No permission to access user data |
7 | 来自该refer的请求无访问权限 | Invalid parameter |
100 | 请求参数无效 | Unsupported response type |
101 | api key无效 | Invalid API key |
104 | 无效签名 | Incorrect signature |
105 | 请求参数过多 | Too many parameters |
106 | 未知的签名方法 | Unsupported signature method |
107 | timestamp参数无效 | Invalid/Used timestamp parameter |
109 | 无效的用户资料字段名 | Invalid user info field |
110 | 无效的access token | Access token invalid or no longer valid |
111 | access token过期 | Access token expired |
210 | 获取未授权的字段 | Unsupported permission |
211 | 请求参数无效 | Unsupported response type |
212 | 没有权限获取用户的email | No permission to access user email |
| 800| 未知的存储操作错误 | Unknown data store API error |
| 801| 无效的操作方法 |Invalid operation |
| 802| 数据存储空间已超过设定的上限|Data store allowable quota was exceeded|
| 803| 指定的对象不存在 | Specified object cannot be found|
| 804| 指定的对象已存在 | Specified object already exists |
| 805| 数据库操作出错,请重试 | A database error occurred. Please try again |
| 900| 访问的应用不存在 | No such application exists|