在thinkphp5.1中如何写接口及如何调用接口

对于php不熟悉的人来说,解除thinkphp还是挺有难度的。

下面记录如何编写接口。

及如何对编写的接口进行调用。

<?php

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

namespace app\api\controller;

use controller\BasicApi;

use service\DataService;

use service\NodeService;

use service\ToolsService;

use think\Db;

use think\exception\HttpResponseException;

/**

 * 兼容适配接口

 * Class Member

 * @package app\api\controller

 */

class Ecodemo extends BasicApi {

    protected $table = 'Compatible';

    /**

     * 初始化

     * @access protected

     */

    protected function initialize() {

        parent::initialize();

    }

    /**

     * 获取适配信息

     * @access public

     * @throws \think\Exception

     * @throws \think\exception\PDOException

     */

    public function index() {

        $param = $this->request->param();  //获取请求的参数

        if (empty($_SERVER['HTTP_AUTHORIZATION']))

            throw new HttpResponseException(json(['code' => 0'msg' => 'error!']));

        $sign = $_SERVER['HTTP_AUTHORIZATION'];

        $company = Db::name('authentication')->where('token', $sign)->value('company');

        if (empty($company))

            throw new HttpResponseException(json(['code' => 0'msg' => 'error!']));

        $db = Db::name($this->table)

            ->order(['sort' => 'asc''id' => 'desc'])

            ->where('is_deleted'0)

            ->where('id', $param['list_id'])->field(['name','update_time','desc']);  //数据库查询

        // dump($db);

        return parent::_list($db);

        // throw new HttpResponseException(json(['code' => 1, 'list' => $db]));

    }

    /**

     * 修改适配信息

     * @access public

     * @throws \think\Exception

     * @throws \think\exception\PDOException

     */

    public function update() {

        $param = $this->request->param();

        if (empty($_SERVER['HTTP_AUTHORIZATION']))

            throw new HttpResponseException(json(['code' => 0'msg' => 'error!']));

        $sign = $_SERVER['HTTP_AUTHORIZATION'];

        $company = Db::name('authentication')->where('token', $sign)->value('company');

        if (empty($company))

            throw new HttpResponseException(json(['code' => 1'msg' => 'error!']));

        if ($this->request->isPost()) {

            Db::name($this->table)

            ->where('id',$param['list_id'])

            ->data(['name' => $param['content']])

            ->update();   //数据库修改

            throw new HttpResponseException(json(['code' => 0'msg' => '修改成功']));

             

        else {

            throw new HttpResponseException(json(['code' => 1'msg' => 'error!']));

        }

    }

     /**

     * 获取请求header

     *

     */

    function getallheaders($param = null) {

        $headers = array();

        foreach ($_SERVER as $name => $value) {

            if (substr($name, 05) == 'HTTP_') {

                $headers[str_replace(' ''-', ucwords(strtolower(str_replace('_'' ', substr($name, 5)))))] = $value;

            }

        }

        if($param != null){

            return $headers[$param];

        }

        return $headers;

    }

}

 最后我发现无论是get、post、put请求,我们都可以通过$this->request->param();方法获取到参数信息。

 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部