错误码和返回码是一个东西,但是表达的意思不同,返回码包括正确返回码和错误返回码,本文档将正确返回码部分称作返回码,返回码中的错误返回码部分称作错误码
Code 错误码对应含义 错误码使用概念
0 正确 只要是正确就是0
-1/1 未登录 只要未登录就是-1,属于严重的权限问题需要把用户T出系统
400/-400 错误 用于定义一般错误(或者不知道使用何种错误码时使用),例如某些参数未传
401/-401 权限问题 例如一个接口有两种方案,例如方案1用户不能重复,方案2可以,但是默认情况下需要先返回不能执行,直到用户选择“强制操作”来超控接口,所以在用户选择超控前的错误提示,默认错误就是401
402/-402 上传文件故障 部分文件存在一些无法打开等故障(解析),使用402,对于文件已经被上传过等问题使用正常的406-407即可
403/-403 (接口)权限错误 例如某个用户无权限访问本接口,则使用403,如果不确定是否有权限问题,则使用400
404/-404 目标不存在 例如没有该数据,或者该用户,一般使用404定义,特别注意,如果使用CURL获取远远程数据不存在时,使用200报错
406-407 资源不符合预期 资源不符合预期或者已存在时使用406与407,406已存在,407不符合预期,例如用户上传的内容没问题,不触发400,但是上传的内容和我需要的资源不相符或者不是我预期的内容,又或者重复时即可调用本错误码
300/-300 接口程序类错误 例如一些复合Action中出现错误时使用300系列通用错误码,比如资金操作时可能有多重复合情况发生,这些问题又不是太好标注,则这个时候推荐使用300系列错误码
200/-200 远程资源通用故障 例如调用远程接口,因为用户上传数据问题,远程给你返回400,则你返回200,也可作为远程接口通用错误码
204/-204 远程资源不存在 远程接口/文件的状态为404时,则不存在,我方接口返回204错误
203/-203 远程禁止 同上理解
206-207 无法处理远程内容 远程接口返回的内容不符合你的预期时,使用本错误码,当远程的内容你可以处理(过了你的拦截器后)则归类为300系列错误,不应该继续使用200错误码(责任划分)
500/-500 数据库insert错 insert数据出错时,属于500错误,find方法select方法调不到数据,均是404或400错误
501/-501 数据库update错 update出错时使用501错误标注
Code范围 返回码对应含义 概念拓展范围
±100-199 通知级别 细致的返回code定义,大中小型系统直接用0表示成功即可,无需定义
例如本接口的data为string,则使用1xx系列返回
100系列的错误码多用于用户账户类型的错误
±200-299 资源级别 细致的返回code定义,大中小型系统直接用0表示成功即可,无需定义
例如你的程序有出现调用远程接口,远程接口返回错误时一般使用200系列的错误码来表示
±300-399 复合错误/计算错误 本类型错误主要用于中间件报错或者复合Action调用出错时使用,或用于由程序本体逻辑从而拒绝继续执行时的错误返回
300错误码仅针对本地(内部调用)出错/终止时使用,实战中请尽量使用2xx/4xx/5xx等更有针对性错误码
±400-499 不符合操作的错误 对非系统故障/计算故障/数据库故障外所有对用户提交的数据进行驳回后所使用的的错误码
(用户权限导向) 简单而言就是用户提交的数据不在你的允许范围内,则全部使用400标记错误并返回
±500-599 不符合意志的错误 一般不是4xx系列错误的均为5xx错误,一般是逻辑判断处理结束,接下来要执行数据库增删改查动作时,或
(程序故障导向) 者CURL修改远程数据时,因为从编程上编程者主观上
是希望本操作能成功的,但是有可能会出现失败,所以只
要出现失败,这种错误就是5xx错误
响应码分为-正数响应码和负数响应码,正数响应码定义“有感错误提醒”,负数响应码定义“无感错误提醒”。
有感错误提示:例如本错误需要前端将错误通过popup气泡框或者alert框展示出来时,就需要使用正数返回码,需要让客户感知到的(无论弹窗还是气泡)返回码就要用正数返回码
无感错误提示:例如本错误不需要提示,而是直接执行操作,例如未登录时,如不需要弹出“登陆过期”,这样的提示框,则使用负数返回码(-1),如需要弹出提示框提示“登陆过期”,则使用正数返回码(1)