我们使用标准的HTTP status codes 表示远程通信结果。
在远程通信响应正常上,我们定义了一个错误模型,表示服务逻辑功能处理的结果。
错误模型
每个正常响应的里,用 Status
字段表示, 使用简单结构,如下表所示:
名称 | 类型 | 描述 |
---|---|---|
Message |
String |
描述 |
Code |
Integer |
错误码 |
用JSON表示响应的 Status
示例,参考如下:
{
"Status": {
"Message": "resource not found",
"Code": 10000003
}
}
错误码
我们将常见的错误码提取出来,作为公用部分,可应用到所有API里。
相对应的,每个服务自身特有的错误码是私有的。它将在具体服务章节里体现。
以下是所有公用部分错误码,供参考:
Code | 描述 |
---|---|
0 |
成功 |
10000000 |
客户端指定了无效的参数,请参考错误描述获取详情。 |
10000001 |
客户端无权执行操作。 |
10000002 |
客户端期望创建的资源已经存在,一般是指重复请求了。 |
10000003 |
客户端指定的操作资源无法找到,比如请求了一个不存在OrderID。 |
50000000 |
未知服务端错误,常见于bug。 |
50000001 |
服务端内部处理出错,常见于bug。 |
50000002 |
服务端内部处理超时,并不表示客户端可以重试。 |
50000003 |
服务端处理出错,明确告之客户端可以重试。重试的次数与间隔可参考错误描述。 |