THINKPHP5 如何开发API以及改变输出数据类型,以及比较好用的测试接口的插件(postman)

其实一个简单的接口大家可以理解为访问url,通过URL传参的方式带入数据,通过模型查询数据,获取到之后,添加到数据组中,给定返回页面内容,内容主要是响应状态code,参数信息,content内容。如果大家会有对模型的使用不太请的地方,可以去看我前面的THINKPHP5中的模型章节的教学。那么下面我们就开始今天的主题了哈。

首先我们需要在控制器定一个方法,方法其实就是对应的功能。

public function search(){
        //定义一个方法

    }

接着我们说一下今天用到的第一个类Request类。我们可以直接通过这个Request类中的param()方法获取到浏览器传递的参数信息,当然这个Request类包含了很多有用的信息,包括头信息,路由地址等。大家可以详细的去看下手册,或者打印下request对象即可。那我们在search的参数中传入request对象,并以$request变量的形式传递。如下所示:

public function search(Request $request){
        //定义一个方法

    }
public function search(Request $request){
        //定义一个方法
        $param=$request->param();

    }

当然也可以直接实例化request类,使用其中的instance()方法,像下面这样:

public function search(){
        //定义一个方法
        $info=Request::instance();
        $param=$info->param();

    }

这个param() 方法中填入要获取的参数名称,假设是id。param('id')。接着我们需要在模型层创建一个模型就叫param吧,我们对应的在数据库建立一张表名字位param的表。

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/7/21 0021
 * Time: 19:59
 */

namespace app\admin\model;


use think\Model;

class Param extends Model
{
    protected $pk='id';
    

}

表的建立。

 我们使用模型中的get方法中传入id参数,去查询数据库中的数据信息。而id参数信息又是从路由地址中获取的,明白了吧。我们把模型获取的数据,通过ToArray()方法转换为数据,方便后面的使用。像下面这样子:

public function search(Request $request)
    {
//        $info = Request::instance();
        $param = $request->param('id');//获取当前参数,也就是接口参数
        $cont = \app\admin\model\Param::get(['id' => $param])->toArray();//带入获取数据
        

    }

接着我们定义一个数据,在里面加入我们要返回页面的参数,像下面这样:

public function search(Request $request)
    {
//        $info = Request::instance();
        $param = $request->param('id');//获取当前参数,也就是接口参数
        $cont = \app\admin\model\Param::get(['id' => $param])->toArray();
        $data = [
            'id' => $param,//获取到的参数值
            'host'=>$request->host(),//host地址
            'url' => $request->url(),//;路由地址
            'message'=>"接口信息",//返回的信息
            'content' => $cont['content'],//返回的数据内容
        ];
   

    }

 最后我们把我们的$data数据返回给页面,类型可以是json,jsonp或者xml

public function search(Request $request)
    {
//        $info = Request::instance();
        $param = $request->param('id');//获取当前参数,也就是接口参数
        $cont = \app\admin\model\Param::get(['id' => $param])->toArray();
        $data = [
            'id' => $param,
            'host'=>$request->host(),
            'url' => $request->url(),
            'message'=>"接口信息",
            'content' => $cont['content'],
        ];
        //指定json输出。thinkPHP5中已经内置了可以转换数据类型的方法,有json类型,xml类型view类型等。
//        当然也可以自己写一个公共的方法放入common.php文件中,然后调用方法转换就好

        return json($data,200);

        //输出jsonp数据类型
//        return jsonp($data, 200);
        //输出xml数据类型
//        return xml($data, 200);


    }

调试的话我们直接使用Trac的调试模式调试,也可以直接使用postman这个谷歌插件调试,这个插件是可以直接安装在笨的,不通过浏览器打开也行。

途中我标记的这几个地方分别也可以设置方法,参数,路由地址,数据类型等。今天就讲到这里了各位。拜拜。还是不明白的可以留言,我会回复你的。

猜你喜欢

转载自blog.csdn.net/qq_39338006/article/details/81148950
今日推荐