thinkphp6 RESTful API开发笔记

本文详细介绍了使用ThinkPHP6框架开发RESTful API的过程,包括项目的部署、JSON格式输出、自定义异常处理和访问权限设置。通过创建多应用模式,配置虚拟域名,实现JSON响应,并定制异常处理机制,以及设置不同访问权限,如无需登录的方法、用户注册验证、登录验证以及限制请求方式等。
摘要由CSDN通过智能技术生成

thinkphp6 RESTful API开发笔记

部署

安装稳定版 composer create-project topthink/think thinkphp6
进入命令行thinkphp6文件下 执行php think run

  • 第一步:配置虚拟域名;
    伪静态
if (!-e $request_filename) {
  rewrite ^(.*)$ /index.php$1 last;
}
  • 第二步:执行指令安装多应用模式功能;
    composer require topthink/think-multi-app

  • 第三步:创建应用目录;
    php think build api

  • 第四步:版本控制
    复制根目录下route文件放到api应用上,修改app.php代码
    app/api/controller/v1

<?php

use think\facade\Route;

//Route::rule(':version/:controller', 'api/:version.:controller/index');
Route::rule(':version/:controller/:action', 'api/:version.:controller/:action');

把index.php文件复制到v1修改命名空间
访问http://域名/api/v1/index/index

输出JSON格式

在api应用下新建文件夹exception和文件BaseException.php(api/exception/BaseException.php)
所有控制器都继承这个文件
删掉app下BaseController.php文件

<?php
declare (strict_types = 1);

namespace app\api\exception;

use app\api\common\Output;
use think\App;

/**
 * api基础类
 */
abstract class BaseException
{
    use Output;
    
    /**
     * Request实例
     * @var \think\Request
     */
    protected $request;

	/**
     * 保存用户登录信息
     */
    protected $members;

	/**
     * 应用实例
     * @var \think\App
     */
    protected $app;
   
    /**
     * 控制器中间件
     * @var array
     */
    protected $middleware = [];

}

创建common文件夹和Output.php


<?php
 
namespace app\api\common;
 
use think\Response;
 
trait Output
{
 
 
    /**
     * 返回封装后的API数据到客户端
     * @param  mixed   $data 要返回的数据
     * @param  integer $code 返回的code
     * @param  mixed   $message 提示信息
     * @param  string  $type 返回数据格式
     * @param  array   $header 发送的Header信息
     * @return Response
     */
    public function Success($data , string $message = '请求成功', int $code = 200, string $type = 'json',$header = []) :Response
    {
        $result = [
            'code' => $code,
            'message' => $message,
            'time' => date('Y-m-d H:i:s',time()),
            'data' => $data
        ];
        return Response::create($result,$type)->header($header);
 
    }
 
    /**
     * 返回封装后的API数据到客户端
     * @param  mixed   $data 要返回的数据
     * @param  integer $code 返回的code
     * @param  mixed   $message 提示信息
     * @param  string  $type 返回数据格式
     * @param  array   $header 发送的Header信息
     * @return Response
     */
    public function Erroneous($data , string $message = '请求失败', int $code = 500, string $type = 'json',$header = []) :Response
    {
        $result = [
            'code' => $code,
            'message' => $message,
            'time' => date('Y-m-d H:i:s',time()),
            'data' => $data
        ];
        return Response::create($result,$type)->header($header);
    }
 
    /**
     * @param int $code
     * @param string $message
     * @param array $data
     * @param array $header
     */
    public function returnMsg($data = [], $message = '',$code = 500,$header = [])
    {
       $res = [
            'code' => $code,
            'message' => $message,
            'time' => date('Y-m-d H:i:s',time()),
            'data' => $data
        ];
        json($res)->send();
        die;
    }

}
<?php
declare (strict_types = 1);

namespace app\api\controller\v1;

use app\api\exc
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值