php return code 的api设计
我的 response json 结构是
{
"code": 0,
"message": "",
"data": ""
}
有成功的话资料都会在 data
我在 index.php 的预设值为
$return['code'] = 0;
$return['message'] = '';
$return['data'] = '';
只是现在有个问题
假设 router 为 /signin
$return['data'] = (new User())->SIGNIN();
return $return;
我丢给 class User
假设在 SIGNIN 资料库逻辑中找不到此帐号则回传 code = 400
, message = '无此帐号'
这两种资讯给使用者
User Class
$res = DB::queryFirstRow(
"SELECT * FROM `user` WHERE `email` = %s AND `password` = %s",
$body['email'], $body['password']
);
if (!$res) {
$return['code'] = 400;
$return['message'] = '无此帐号';
}
那我该如何在 User 中得知有错误时,指定第一层的 code, message 而不是变成这样
{
"code": 0,
"message": "",
"data": {
"code": 400,
"message": "无此帐号"
}
}
毕竟我一开始就指定了在 $return['data']
做资料库逻辑....所以出现以上的状况
改成$return
我就可以在User 做$return['code']
, $return['message']
指定,但这样会有严重重复的问题,而且不会只有这个class.. .
我在 index.php 做了预设就是除非是特殊状况,用意我就不说明了
这种情况能怎么改善呢? !
有想到一个方式是在 router 判断 data 吐回来的状况,但这样就有点多此一举...想说让 router 干净点
否则 model跟router都要判断就有点呵呵
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
抛出异常啊,有异常时
code
就是异常码,message
就是异常消息
,data
没有数据,这是标准做法返回数据时可以用array_merge吧