thinkphp6api响应封装(数据查询)
现在使⽤⽐较多的api风格是restful设计风格,也就是响应时的json数据应该包含有data数据、msg响应信息、code响应状态码、type数据格式等这⼏个信息。
⽽且数据响应的格式都应该保持格式⼀致,所以就涉及到响应数据的封装问题,封装好响应模式后,以后可以直接调⽤。
第⼀步,新建公共控制器common.php,定义响应returnapi()⽅法的数据模式进⾏封装;
<?php
namespace app\controller;
use think\Response;
class Common //定义Common公共类
{
//定义标准api⽅法,接收请求传过来的变量
public function ReturnApi($data = [],$msg = '数据为空!',$code = 201,$type = 'json'){
//定义Result数组接收请求过来的变量
thinkphp3$Result = [
'code' => $code,
'msg' => $msg,
'data' => $data
];
//返回api接⼝,tp6 Response响应提供的create($data,$type,$code)⽅法本⾝已经定义了$data,$type,$code这三个变量;
//在这⾥重新封装相当于是按restful风格定义响应数据
return Response::create($Result,$type);
}
}
第⼆步,在其他控制器继承common控制器,涉及到响应时直接按returnapi()的数据风格返回。
<?php
declare (strict_types = 1);
namespace app\controller;
use app\model\Admin as ModelAdmin;
use think\Request;
class Admin extends Common//继承公共控制器Common
{
/**
* 显⽰资源列表
*
* @return \think\Response
*/
public function index()
{
//将查询结果赋值给你变量$data
//使⽤field()⽅法可以返回指定字段信息并重新排序
//使⽤paginate()⽅法可以对查询结果进⾏分页,括号⾥⾯的参数代表每页数值,返回的数据包括了数据汇总信息 $data = ModelAdmin::where('isdelete',0)
->field('id,admintype_id,realname,mobile,email,lastip')
->paginate(10);
//调⽤Common公共类中的标准api数据格式ReturnApi()函数,并返回标准api
//要判断数据集是否为空不能直接⽤empty⽅法判断,⽽是⽤isEmpty()⽅法判断
if($data -> isEmpty()){
return $this->ReturnApi();//如果数据为空,返回默认响应
}else{
//如果数据不为空,返回以下信息
return $this->ReturnApi($data,'数据请求成功!',200,'json');
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论