Thinkphp封装统一响应

本文介绍了如何使用自定义trait在ThinkPHP项目中统一API接口的‘成功’、‘失败’和‘异常’响应数据格式,提供了详细的示例和方法调用说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们平时开发新项目api接口的时候总是要先自定义自己的响应数据格式,但是每个人的风格习惯不同,导致开发人员封装的响应数据格式不统一,而且需要花时间去重复写。本篇文章主要是统一 API 开发过程中「成功」、「失败」以及「异常」情况下的响应数据格式。

封装响应

为了方便调整适合自己的响应格式,这里使用自定义trait来实现

我们新建文件application/common/traits/CustomResponse(基于tp5,其他版本类似),文件内容直接复制下面的代码然后保存,注意修改为你的命名空间:

<?php

namespace app\common\traits;

use think\exception\HttpResponseException;
use think\Response;

trait CustomResponse{
   
    //默认输出类型,可选择json、jsonp、xml、html、view、redirect等
    //参考thinkphp文档https://doc.thinkphp.cn/v5_1/xiangyingshuchu.html
    protected $type = 'json';

    /**
     * 操作成功返回的数据.
     *
     * @param mixed  $data   要返回的数据
     * @param string $msg    提示信息
     * @param int    $code   错误码,默认为1
     * @param string $type   输出类型
     * @param array  $header 发送的 Header 信息
     */
    protected function success($data = null, $msg = '请求成功', $code = 200, array $header = [])
    {
   
        $this->result($msg, $data, $code, $header, 'success');
    }

    /**
     * 操作成功返回默认message
     *
     * @param string $msg    提示信息
     */
    protected function ok($msg = '请求成功')
    {
   
        $this->result($msg,null, 200);
    }

    /**
     * 操作失败返回的数据.
     *
     * @param string $msg    提示信息
     * @param mixed  $data   要返回的数据
     * @param int    $code   错误码,默认为0
     * @param string $type   输出类型
     * @param array  $header 发送的 Header 信息
     */
    protected function fail($msg = '请求失败', $data = null, $code = 500, array $header = [])
    {
   
        $this->result($msg, $data, $code, $header, 'fail');
    }

    /**
     * 系统异常返回的数据.
     *
     * @param string $msg    提示信息
     * @param mixed  $data   要返回的数据
     * @param int    $code   错误码,默认为0
     * @param string $type   输出类型
     * @param array  $header 发送的 Header 信息
     */
    protected function error($msg = '系统异常', $data = null, $code = 500, array $header = [])
    {
   
        $this->result($msg, $data, $code, $header, 'error');
    }

    /**
     * BadRequest
     *
     */
    protected function errorBadRequest()
    {
   
        $this->result('400 Bad Request',null, 400, [], 'error');
    }

    /**
     * Unauthorized
     *
     */
    protected function errorUnauthorized()
    {
   
        $this->result(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值