think php开发api,API友好 · ThinkPHP5.0完全开发手册 · 看云

新版ThinkPHP5针对API开发进行了优化,统一使用`Response`类处理数据输出,支持自动转换为json、xml等格式。配置`default_return_type`可轻松设定输出类型。此外,通过设置`app_trace`和`trace`参数启用Socket远程调试,便于在浏览器中进行API调试,配合Chrome插件实现远程调试功能。
摘要由CSDN通过智能技术生成

新版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`浏览器插件后即可进行远程调试,详细参考调试部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值