公司的某个项目 要提供对内 /对外的 API 接口
现在有个问题,要有一套错误代码 对应相应的错误,
问下这种错误代码存在的意义是什么?直接提示错误不好么?
如果必须要用错误代码的形式, PHP 要怎么做处理?
是把错误代码和对应信息存到数据库还是存放到数组中? 太大了放到数组中 加载会不会有负担?
还是提示的时候单独定义代码和错误信息
1
HanSonJ 2016-07-01 19:01:33 +08:00
不同的错误就有可能有不同的应对机制,此时就需要通过错误码来识别,错误码这个个人感觉还是没有放数据库的必要,除非你业务变化大,需要随时改动、增加错误码,放数组的话负担也不会大,毕竟很少有超过 30 个错误码的吧
|
2
qiayue 2016-07-01 19:04:04 +08:00 via Android
放在配置文件里,常用的错误码不会太多
|
3
lianyue 2016-07-01 19:12:40 +08:00 1
错误代码方便机器判断
switch (xxx) { case 4: break; case 3: break; case 2: break; case 1: break; default: } 和 switch (xxx) { case 'aaa 错误了': break; case ‘ bbbb 错误了: break; case ’ ccc 错误了‘: break; case ’ ddd 错误了‘: break; default: } 一般我都是 {code:4,message:'xxxx 错误'} |
4
m939594960 OP |
5
qiayue 2016-07-01 19:18:50 +08:00 via Android
把错误分类,同一种处理逻辑的放一类。
举例有些错误只需要告诉用户一声,不需要做其他操作,有些错误需要用户互动 |
6
qiayue 2016-07-01 19:21:24 +08:00 via Android
建议你找几个大站的 API 文档看看他们的错误码都有哪些
如微博 API ,微信 API |
7
feiyuanqiu 2016-07-01 19:25:15 +08:00
要提供错误码是因为使用这些 api 的也是程序,错误码提示的是一类错误,方便接口使用程序处理错误;错误信息告知具体的错误原因,方便接口使用者 debug
你把它当成异常就很好理解,同一类的异常情况抛出相同的异常类,但是异常信息会因具体的情况而不同 错误信息不会太大,太大了就是设计有问题了,接口使用者看着这么巨大的错误列表会昏过去的 |
8
seki 2016-07-01 19:26:57 +08:00
一般都是一类错误会给一个统一的错误码,然后附带一个描述吧
|
9
cxbig 2016-07-01 19:28:37 +08:00
参考 HTTP Response Code
|
10
feiyuanqiu 2016-07-01 19:34:29 +08:00
另外,我们现在提供接口一般都是直接封装好一个接口 Client 的 composer package ,发布到公司的 repository 上面,要用我们接口的团队直接 require 这个包就行了,即插即用,也不需要他们自己再去弄接口调用、签名之类的麻烦事了,发布的接口全都在 Client 里面写成方法,接口返回全部封装成实体对象,用 IDE 开发起来也方便
|
11
HanSonJ 2016-07-01 20:41:22 +08:00
@m939594960 这个不科学,直接一个信息不完整的错误码,错误信息可以自己拼接上去
|
12
iyaozhen 2016-07-01 20:52:15 +08:00 via Android
@m939594960 科学啊,分详细点还是好的。前端也可以根据不同的错误码进行不同的动作,而且定位问题也比较方便。
|