TP5封装一个API接口JSON返回类

本文介绍了一种统一处理Ajax响应的PHP类设计,通过自定义ServerResponse类实现跨域请求的支持,提供创建成功和错误响应的方法,简化了API开发中的响应处理流程。

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

文件名及存放目录

project —> extend —> Gucci —> ServerResponse.php

 源码

 

<?php
/**
 * 统一返回处理类(ajax)允许跨域
 *
 * 使用: **
 *      use Gucci\ServerResponse;
 *      return ServerResponse::createBySuccess("成功");
 *      ServerResponse::createByError("断点失败了");
 */

namespace Gucci;

use think\facade\Config;
use think\exception\HttpResponseException;
use think\Response;

class ServerResponse
{
    public static $successCode = 1;
    public static $errorCode = 0;

    //构造函数
    public function __construct($status,$msg = "",$data = [])
    {

        $result['status'] = $status;
        $msg ? $result['msg'] = $msg : null;
        $data ? $result['data'] = $data : null;

        $type                                   = $this->getResponseType();
        $header['Access-Control-Allow-Origin']  = '*';
        $header['Access-Control-Allow-Headers'] = 'X-Requested-With,Content-Type';
        $header['Access-Control-Allow-Methods'] = 'GET,POST,PATCH,PUT,DELETE,OPTIONS';
        $response                               = Response::create($result, $type)->header($header);
        throw  new HttpResponseException($response);
    }

    /**
     * 成功
     * @param $msg
     * @param null $data
     * @return ServerResponse
     */
    public static function createBySuccess($msg, $data = null){
        return new ServerResponse(self::$successCode, $msg,$data);
    }

    /**
     * 失败
     * @param $msg
     * @return ServerResponse
     */
    public static function createByError($msg){
        return new ServerResponse(self::$errorCode, $msg);

    }

    /**
     * 获取当前的response 输出类型
     * @access protected
     * @return string
     */
    private function getResponseType()
    {
        return Config::get('default_ajax_return');
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值