API 友好

Posted qiqideya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了API 友好相关的知识,希望对你有一定的参考价值。

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

 

 

以上是关于API 友好的主要内容,如果未能解决你的问题,请参考以下文章

Linux 友好的 C# 中的智能卡 API

导航到另一个片段时触发 API 调用

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

微信小程序代码片段

API 友好

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段