PhalApi自定义动态返回JSON根节点,增加最外层返回消息

2024-02-22 11:08

本文主要是介绍PhalApi自定义动态返回JSON根节点,增加最外层返回消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

增加最外层返回消息

使用方法

在API文件中返回前设置需要增加的消息:

\PhalApi\DI()->response->setUserArray('code',2);
\PhalApi\DI()->response->setUserArray('count',100);

结果:

{"ret": 200,"code": 2,//新增code消息"count": 100,//新增count消息"msg": "","data": [{"id": 3,"type": "material","url": "http://mes.igeekiot.com/images/material/1575447548763-2019-12-04.jpg","create_time": "2019-12-04 16:19:08"},{"id": 4,"type": "material","url": "http://mes.igeekiot.com/images/material/1575448027367-2019-12-04.jpg","create_time": "2019-12-04 16:27:07"}]
}

说明

该功能是对原PhalApi\vendor\phalapi\kernal\src\Response.php 文件做了一些修改

修改步骤

1.在abstract class Response{} 中添加$UserArray

    /*** @var array $debug 调试信息*/protected $debug = array();/*** @var array $UserArray 自定义结果*/protected $UserArray = array();/** ------------------ setter ------------------ **/

2.增加setUserArray()使用方法

	/*** 设置错误信息* @param string $msg 错误信息* @return Response*/public function setMsg($msg) {$this->msg = $msg;return $this;}/*** 设置用户自定义消息* @param   string  $key        键值标识* @param   mixed   $value      调试数据* @return  Response*/public function setUserArray($key, $value) {$this->UserArray[$key] = $value;return $this;}

3.修改getResault()方法(我这里调整了返回数据的顺序)

	public function getResult() {$rs['ret'] = $this->ret;//将用户数组与rs合并$rs = array_merge($rs,$this->UserArray);$rs['msg'] = $this->msg;$rs['data'] = is_array($this->data) && empty($this->data) ? (object)$this->data : $this->data;//添加调试信息if (!empty($this->debug)) {$rs['debug'] = $this->debug;}return $rs;}

#增加调试信息

 $x = 'this is x';$y = array('this is y');\PhalApi\DI()->response->setDebug('x', $x);\PhalApi\DI()->response->setDebug('y', $y);
返回
"debug": {"x": "this is x","y": ["this is y"]}

这篇关于PhalApi自定义动态返回JSON根节点,增加最外层返回消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735068

相关文章

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri