goFrame框架特性
- ORM链式删除方式
- 软删除:不删除表记录,只将delete_at设置为not null字段,当表中存在此字段,delete自动执行当前操作
- 物理删除: 忽略delete_at字段 ,直接删除表记录,通过.UnScoped()方法修改删除方式
- 作为商业框架的严谨性
- 禁止无条件的update和delete
- 不会支持类似gorm中的migrate操作
- 什么是中间件
- “中间件”它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
- “GoFrame网络请求控制中间件”是中间件的一种,它是基于GoFrame框架内部的一种中间件
- 在我们WEB开发过程中,像常用的MySQL.Redis、RabbitMQ在系统架构角度也被称为中间件。
- GoFrame中间件/拦截器-基本介绍
- GoFrame
提供了优雅的中间件请求控制方式该方式也是主流的
WebServer提供的请求流程控制方式,基于中间件设计可以为
WebServer提供更灵活强大的插件机制
- GoFrame
- GoFrame中间件定义
- 中间件的定义和普通HTTP执行方法
HandlerFunc
一样,但是可以在Request
参数中使用Middleware
属性对象来控制请求流程。 - 中间件类型
- 按照调用时间分类分为两种:前置中间件和后置中间件
- 前置中间件在路由服务函教调用之前调用,后置即在其后调用。
- 按照中间件注册方式划分,又可分为:全局中间件、分组路由中间件。
- 区别
- 全局中间件是可以 独立使用 的请求拦截方法,通过路由规则的方式进行注册,绑定到Server`上
- 全局中间件仅对动态请求拦截有效,无法拦截静态文件请求。
- 分组路由中注册的中间件绑定到当前分组路由中的所有的服务请求上,当服务请求被执行前会调用到其绑定的中间件方法。
- 分组路由仅有一个
Middleware
的中间件注册方法。分组路由中间件与全局中间件不同之处在于, 分组路由中间件无法独立使用 ,必须在分组路由注册中使用,并且绑定到当前分组路由中所有的路由上作为路由方法的一部分。 - 执行优先级
- 全局中间件也是通过路由规则执行,那么也会存在执行优先级:
- 分组路由中间件是绑定到分组路由上的服务方法,不存在路由规则匹配,因此只会按照注册的先后顺序执行。
- 按照调用时间分类分为两种:前置中间件和后置中间件