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

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

他的作用

  • 自带登录校验

  • 快速完成数据格式校验

  • 自带权限管理机制

  • 支持权限管理自动生成节点

  • 自带响应格式处理

  • 支持后端的菜单控制

利用它

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

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

账号: admin

密码: admin123

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

安装

git clone https://github.com/surest-sky/think-vue-admin-api.gitcd think-vue-admin-apicomposer install导入 目录下的 `permission.sql`

初始化权限节点

php think init_permission --action reset

有关应用

psysh

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

> php think psysh  \app\common\Example::psysh();  输出: 2-> php think psysh    \app\common\Example::init_permission();  输出: 更新节点完成

自定义验证器 | validate

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

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

验证数据

$validate = (new CircleValidate())->goCheck();$data = $validate->validatedData(); # 获取验证通过的数据

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

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

# 校验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 中

use ApiResponse;

继承 BaseController

使用响应的时候, 直接$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 国际许可协议进行许可

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

thinkphp后台_前后端分离决方案|thinkphpvueadmin 后台接口相关推荐

  1. 你需要来自trustedinstaller的权限才能删除_前后端分离后的权限控制设计方案

    近几年随着react.angular.vue等前端框架兴起,前后端分离的架构迅速流行.但同时权限控制也带来了问题.网上很多前.后端分离权限仅仅都仅仅在描述前端权限控制.且是较简单.固定的角色场景,满足 ...

  2. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计

    前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...

  3. 若依前后端分离如何写移动端接口_前后端分离后,如何定义接口规范~

    小Hub领读: 前后端分离的趋势下,该怎么定义规范,来学习学习吧哈! 作者:猿码架构 www.jianshu.com/p/c81008b68350 1. 前言 随着互联网的高速发展,前端页面的展示.交 ...

  4. cors 前后端分离跨域问题_前后端分离之CORS跨域访问踩坑总结

    前言 前后端分离的开发模式越来越流行,目前绝大多数的公司与项目都采取这种方式来开发,它的好处是前端可以只专注于页面实现,而后端则主要负责接口开发,前后端分工明确,彼此职责分离,不再高度耦合,但是由于这 ...

  5. 若依前后端分离如何写移动端接口_前后端分离架构概述

    1.背景 2.未分离时代(各种耦合) 3.半分离时代 4.分离时代 5.总结 <Netty 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集& ...

  6. java 接收前台富文本_前后端分离ueditor富文本编辑器的使用-Java版本

    最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的ueditor富文本编辑器,网上找了很多j ...

  7. python后端开发的缺点_前后端分离优缺点

    前后端分离优缺点 之前有朋友问我:什么是前后端分离.他说北度搜到的都是大篇幅文章,看完还是很懵. 这里我简单总结下,如果有疏漏和不对的地方还请路过的网友指出. 一.先用一张图来解释 二.为什么要前后端 ...

  8. Vue前后端分离的电商后台管理系统项目的概述

    (1)该项目是基于前后端分离的开发模式,基于Vue技术栈的SPA单页面项目, 后端主要操作数据库并向前端暴露一些API接口 前端主要负责绘制页面同时,利用Ajax调用后端提供的接口. 这样的开发模式使 ...

  9. java会员卡的绑定和解绑_前后端分离项目 — SpringSocial 绑定与解绑社交账号如微信、QQ...

    1.准备工作 申请QQ.微信相关AppId和AppSecret,这些大家自己到QQ互联和微信开发平台 去申请吧 还有java后台要引入相关的jar包,如下: org.springframework.s ...

最新文章

  1. 用实例给新手讲解RSA加密算法
  2. 使用Android Studio搭建Android集成开发环境(图文教程)
  3. 无埋点数据收集和adb monkey测试屏蔽通知栏
  4. boost::mpi模块threading::level operations
  5. 04_查看Android内存使用情况
  6. 虚拟目录继承根Web.Config的问题解决(转)
  7. cmd.exe启动参数说明
  8. 简述oracle数据库特殊状态,【OracleDB】 01 概述和基本操作
  9. macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了!
  10. Rust 第一章 简介
  11. cf修改游戏客户端是什么意思_cf游戏客户端是什么
  12. Python unittest基本框架组成(1)
  13. 多功能数字钟c语言单片机PPT,单片机多功能数字时钟设计电路大全(五款单片机多功能数字时钟设计电路)...
  14. Win10 第三方浏览器无法上网或者上网速度慢 的终极解决方案
  15. 关于git push报hook declined
  16. 正睿OIday8-day10
  17. 鸿蒙ios,鸿蒙2.0和ios区别_鸿蒙2.0和ios有什么差别
  18. 本人新开的一个人才网站,玉环人力网
  19. ddl和dml(DDL和DML包含哪些动词)
  20. word里如何在□里打√!框框里打勾

热门文章

  1. 一元多项式 java_java实现一元多项式加法
  2. centos7登陆mysql_Centos7安装Myql8.0并授权登录
  3. Spring Ioc Configration - Annotation
  4. 在 SELECT 查询中使用开窗函数
  5. Codeforces Round #219 (Div. 2) 解题报告
  6. dorado7网页api
  7. Flickr 网站架构分析
  8. OCM考试经历:注意事项
  9. Nodejs模块初始化
  10. textbox根据内容自动调整高度