欢迎来到资源库(www.zyku.net)

ThinkPHP

当前位置:首页 > 网络编程 > ThinkPHP > TP框架

thinkPHP5.0框架API优化后的友好性分析

时间:2017-03-17|栏目:ThinkPHP|点击:|我要投稿

新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展。

数据输出

新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你只需要在控制器中返回字符串或者数组即可,例如如果我们配置:

'default_return_type'=>'json'

那么下面的控制器方法返回值会自动转换为json格式并返回。

namespace app\index\controller;
  class Index
  {
  public function index()
  {
  $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
  return ['data'=>$data,'code'=>1,'message'=>'操作完成'];
  }
  }

访问该请求URL地址后,最终可以在浏览器中看到输出结果如下:

{"data":{"name":"thinkphp","url":"thinkphp.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}

如果你需要返回其他的数据格式的话,控制器本身的代码无需做任何改变。

支持明确指定输出类型的方式输出,例如下面指定JSON数据输出:

namespace app\index\controller;
  class Index
  {
  public function index()
  {
  $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
  // 指定json数据输出
  return json(['data'=>$data,'code'=>1,'message'=>'操作完成']);
  }
  }

或者指定输出XML类型数据:

namespace app\index\controller;
  class Index
  {
  public function index()
  {
  $data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
  // 指定xml数据输出
  return xml(['data'=>$data,'code'=>1,'message'=>'操作完成']);
  }
  }

核心支持的数据类型包括view、xml、json和jsonp,其他类型的需要自己扩展。

错误调试

由于API开发不方便在客户端进行开发调试,但ThinkPHP5的Trace调试功能支持Socket在内的方式,可以实现远程的开发调试。

设置方式:

  'app_trace' => true,
  'trace'   => [
  'type'       => 'socket',
  // socket服务器
  'host'       => 'slog.thinkphp.cn',
  ],

然后安装chrome浏览器插件后即可进行远程调试,详细参考调试部分。

(资源库 www.zyku.net)

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务