前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前后端分离决方案|thinkphp-vue-admin 后台接口

前后端分离决方案|thinkphp-vue-admin 后台接口

作者头像
猿哥
发布2019-07-31 15:50:06
3K0
发布2019-07-31 15:50:06
举报
文章被收录于专栏:Web技术布道师Web技术布道师

thinkphp-vue-admin 后台接口 |前后端分离决方案

它一套有thinkphp开发集成性后台接口,内置权限管理,api响应,psysh等多功能工具

他的作用

  • 自带登录校验
  • 快速完成数据格式校验
  • 自带权限管理机制
  • 支持权限管理自动生成节点
  • 自带响应格式处理
  • 支持后端的菜单控制

利用它

快速搭建基础的前后端分离场景下的后台

在线地址: http://v-web.surest.cn/

账号: admin

密码: admin123

vue 地址: https://github.com/surest-sky/thinkphp-vue-admin

安装

代码语言:javascript
复制
git clone https://github.com/surest-sky/think-vue-admin-api.git

cd think-vue-admin-api

composer install

导入 目录下的 `permission.sql`

初始化权限节点

代码语言:javascript
复制
php think init_permission --action reset

有关应用

psysh

psysh 是什么: http://vergil.cn/archives/psysh

代码语言:javascript
复制
> php think psysh

  \app\common\Example::psysh();
  
  输出: 2
  
-> php think psysh

    \app\common\Example::init_permission();
    
  输出: 更新节点完成

自定义验证器 | validate

具体使用方法不详说, 大概如下

定义一个验证器, 继承 app\common\validate\BaseValidate

验证数据

代码语言:javascript
复制
$validate = (new CircleValidate())->goCheck();
$data = $validate->validatedData(); # 获取验证通过的数据

然后常用的正则和一些方法都可以写到 BaseValidate 中即可

例如常用验证 ids 格式如 1,2,3,4 的数据可以这样获取

代码语言:javascript
复制
# 校验ids
$validate = (new IdsValidate())->goCheck();
$ids = $validate->getIds();

响应方式

  • $this->successed(); { "msg": "success", "code": 200, "data": {} }
  • $this->internalError(); { "msg": "服务器错误", "code": 500, "data": {} }
  • $this->notFond(); { "msg": "未找到", "code": 404, "data": {} }
  • $this->frobidden(); { "msg": "未授权", "code": 401, "data": {} }
  • $this->failed(); { "msg": "授权失败", "code": 403, "data": {} }

BaseController

代码语言:javascript
复制
use ApiResponse;

继承 BaseController

代码语言:javascript
复制
使用响应的时候, 直接

$this->successed($list);

具体的可见方法: appcommonTraitsApiResponse

异常处理控制

app.php 中, 我们接管了异常, 响应格式替换为我们的 ApiResponse

具体见方法, app\common\exception\Handler

异常处理控制后, 可定制化异常处理

见: http://surest.cn/archives/85/

简单说明一下:

handler.php 通过传递当前抛出异常的 exception 和我们需要针对化处理的异常进行校验, 采用的也就是 instanceof 去判断来自于哪个异常

这样做的好处就是, 针对不用的异常进行监控, 并抛出指定的异常错误信息 或者 日志

自定义的异常处理 必须 继承 CustomExceptionInterface 接口, 通过 showMsg 来处理抛出异常

代码中, 我们会发现一个问题, 在 handler.php 中 异常信息是返回的, 官方文档中有介绍, **使用异常处理接管的函数必须返回一个 response 响应, 所以可以看到 在 BaseException

设置了 is_anomaly_andling_takeover 就是告诉 ApiResponse 需要返回一个 response 响应

本文由邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP技术大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • thinkphp-vue-admin 后台接口 |前后端分离决方案
    • 安装
      • 初始化权限节点
        • 有关应用
          • psysh
        • 自定义验证器 | validate
          • 响应方式
            • 异常处理控制
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档