Eyoucms程序开发:API友好
新版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
开发不方便在客户端进行开发调试,但ThinkPHP1
的Trace
调试功能支持Socket
在内的方式,可以实现远程的开发调试。
设置方式:
'app_trace' => true,
'trace' => [
'type' => 'socket',
// socket服务器
'host' => 'slog.ThinkPHP.cn',
],
然后安装chrome
浏览器插件后即可进行远程调试,详细参考调试部分。
相关文档
- 迅睿cms二次开发系统目录结构说明
- 网站全局表单:前端在线留言提交间隔二次开发
- 迅睿cms使用API接口实现主站统一管理多站点群友情链接
- 如何调取栏目英文名称
- 导航菜单判断是否有子栏目,有则显示否则隐藏(二级菜单调用)
- EYOUCMS如何用channelartlist调用指定的栏目及...
- 获取当前文章页面栏目名称和栏目链接栏目图片的方法
- EYOUCMS 当前位置导航的修改方法
- 列表分页样式的修改
- 如何调用指定栏目名称和链接地址
- 获取当前文档url地址的方法
- 文章内容页如何获取上一篇下一篇
- 在其它页面调用单页文章内容的方法
- 如何对描述字符description限制字数
- 导航高亮焦点显示方法
- 首页、列表页调用文章content内容的方法
- arclist循环中,判断如果是第一个li,则添加固定的css,...
- 如何调用指定栏目下的推荐文章
- EyouCms对接百度熊掌号实现快速收录
- Eyoucms基本信息-核心设置之手机站域名功能解析
上一篇: Eyoucms程序开发:Traits引入
下一篇: Eyoucms程序开发:配置目录