ThinkPHP6项目基操(5.封装API数据格式及业务状态码统一管理)

封装API数据格式及业务状态码统一管理

一、封装API数据返回格式

我们在返回API数据的时候,一般是使用json格式输出,如上节处理找不到控制器或方法返回数据:

public function __call($name, $arguments)
{
    // 如果是API模块,需要输出API的数据格式(一般是json)
    // 如果是模板引擎的方式,需要输出自定义错误页面
    $result = [
        'status' => 0,
        'message' => '找不到该方法',
        'result' => null
    ];
    return json($result, 400);
}

这种方式是在设计API接口时用的比较多的,为了统一后台返回的数据格式,方便前端统一处理,我们可以设计通用化的API数据格式。

app目录有一个common.php文件,这个是公用的文件,可以在这里定义公用的方法:

<?php
// 应用公共文件

/**
 * 通用化API数据格式输出
 * @param $status
 * @param string $message
 * @param array $data
 * @param int $httpStatus
 * @return \think\response\Json
 */
function show($status, $message = 'error', $data = [], $httpStatus = 200){
    $result = [
        "status" => $status,
        "message" => $message,
        "result" => $data
    ];
    return json($result, $httpStatus);
}
参数作用默认值
$status业务代码
$message返回消息error
$data返回数据[ ]
$httpStatusHTTP状态码200

我们修改下 BaseController 控制器的 __call 方法:

public function __call($name, $arguments)
{
    // 如果是API模块,需要输出API的数据格式(一般是json)
    // 如果是模板引擎的方式,需要输出自定义错误页面
    /*$result = [
        'status' => 0,
        'message' => '找不到该方法',
        'result' => null
    ];
    return json($result, 400);*/
    return show(0, "找不到{$name}方法", null, 404);
}

再次访问不存在的方法test1:
在这里插入图片描述

二、业务状态码统一管理

如上代码中的业务状态码是在调用common方法时传递的,当我们业务逻辑复杂的时候,这个状态码会很多,为了避免冲突和方便管理维护,我们可以统一配置在一个地方:
config目录新建一个status.php文件用来存放业务代码配置。

文件名可以随意,在config目录下文件都会自动加载,使用config("文件名.字段名")即可获取配置值,如config("status.action_not_found")

文件内容如下,具体状态码可以根据具体的业务场景自行设置:

<?php
/**
 * 该文件主要存放业务状态码相关的配置
 */

return [
    "success" => 1,
    "error" => 0,
    "not_login" => -1,
    "user_is_register" => -2,
    "action_not_found" => -3
];

然后我们修改下 BaseController__call 方法:

return show(config("status.action_not_found"), "找不到{$name}方法", null, 404);

再访问不存在的方法:
在这里插入图片描述


⭐️重磅推荐:免费商用电商系统

😏想白嫖整个电商系统用来商用?
🤑想有自己的商城实现财富自由?
🤓想学习最佳实践提升自己技术?

快来进入🚀 传送门 🚀,开源免费、完整示例带你快速入门,轻松二开,走上人生巅峰!👨‍🎓
在这里插入图片描述

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值