ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-04-21 13:51:01  阅读:260  来源: 互联网

标签:插件 数据类型 THINKPHP5 request param public search Request id


其实一个简单的接口大家可以理解为访问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这个谷歌插件调试,这个插件是可以直接安装在笨的,不通过浏览器打开也行。

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

标签:插件,数据类型,THINKPHP5,request,param,public,search,Request,id
来源: https://blog.csdn.net/qq_39338006/article/details/81148950

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有