thinkphp5.0 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‘=>‘操作完成‘]);
    }
}

核心支持的数据类型包括viewxmljsonjsonp,其他类型的需要自己扩展。

错误调试

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

设置方式:

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

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

时间: 2024-08-27 13:34:49

thinkphp5.0 API友好的相关文章

API 友好

API友好 新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展. 数据输出 新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你只需要在控制器中返回字符串或者数组即可,例如如果我们配置: 'default_return_type'=>'json' 那么下面的控制器方法返回值会自动转换为json格式并返回. name

在ASP.net Core2.0 API中使用SQL服务器

web api的教程非常少,使用 core2.0的更少,微软提供了一个aspnet core2的教程,也提供了EF core中访问SQL服务器的教程,参考这些教程可以做出使用sql server的aspnet core 2.0 api程序. 参考链接如下: 1.aspnet core 2.0 web api教程 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api 该教程使用了字符串数组做数据源,未访问实际的数据

thinkPHP5.0的学习研究【架构】

2017年6月19日18:51:53 架构:1.ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织.2.MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务.3.传统的访问方法:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值-4.入口文件用户请求的PHP文件,负责处理一个请求(注意,不一定是URL请求)的

thinkphp5.0.7 &===composer更新===& thinkphp5.0.9 debug “controller not found”

当thinkphp5.0.7更新到最新版本时,问题来了... 控制类加载不了. 上线版本出现这个情况,也就悲哀了.====== 那么这种问题主要是因为 composer 没有合理的使用: 详细参考:如下内容: composer.lock - 锁文件 在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件.这将锁定改项目的特定版本. 请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中 这是非常重要的,因为 i

Android 5.0 API

Android 5.0 API 在本文档中展开 更新目标 API 级别 重要的行为变更 界面 通知 图形 媒体 存储 无线和连接 Project Volta Android 在办公和教育中的应用 系统 打印框架 测试和辅助功能 IME 清单声明 API Differences API level 20 to 21 ? L Developer Preview to 21 ? See Also Android 5.0 Behavior Changes Android Lollipop Highlig

第一次使用composer安装thinkphp5.0

1.下载 Composer-Setup.exe 安装软件包. https://getcomposer.org/download/ 2.composer安装完成之后 ,在项目的根目录下 按住"Shift + 鼠标右键", 在列表里面点击"在此处打开命令窗口  "       thinkphp5.0 提供了composer下载的命令: 如果国内访问composer的速度比较慢,可以参考这里的说明使用国内镜像 其实就是在上面的 命令之前 ,使用下面的命令: 再去使用第一个

thinkphp5.0学习笔记(三)获取信息,变量,绑定参数

1.构造函数: 控制器类必须继承了\think\Controller类,才能使用: 方法_initialize 代码: <?php namespace app\lian\controller; use think\Controller; use think\Db; use think\Request; class Index extends Controller { public function _initialize() { echo 'init|||'; } public function

thinkphp5.0命名空间

命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass(); $xml = new SimpleXmlElement($xmlstr);

thinkphp5.0无限极分类及格式化输出

首先我们来看数据表 从上图中可以发现,中国下有贵州,北京两个子节点,而北京有天安门一个子节点,纽约的子节点是"纽约的子类". 从pid为0看出,中国和纽约是顶级节点. 因为贵州的pid是1,而中国的id为1,所以贵州的父节点是中国,至于type字段,可以不用管,只是我自己的项目需要. 可以发现,着写数据在数据表中是无序的,并没有我们想象中的层次结构分明并且可读性很好. 那么,当使用无限极分类之后数据的输出是怎样的呢?如下: 这样就能够很清晰的看出他们的层次结构了,那么这样的效果在thi