goft
搜索文档…
goft
gin脚手架使用文档
所需环境
建议的目录结构
配置
最简单的启动代码
出错跟踪
自定义错误展示
覆盖系统内置异常处理
路由
路由写在一个文件里
常规设置
控制器
控制器形式
控制器方法
控制器方法不想返回值
输出JSON
获取请求对象
全局中间件
基本定义
注册中间件
示例1:判断token参数
示例2:修改响应内容
跨域中间件
路由级中间件
基本定义
示例:参数验证和业务分离
依赖注入
基本定义
注册依赖配置
基本使用
注入Gorm和XOrm
精简版领域驱动
基本说明和概念
基本分层
领域层
领域层之实体
领域层之值对象
领域层之仓储
领域层之聚合
领域服务层
应用层(application)
应用层之DTO
DTO和实体映射
应用层之应用服务层
代码落地
由
GitBook
提供支持
基本定义
原生gin的中间件无法定位到具体的URL。改造后目前支持路由级的中间件,支持绑定具体的URL进行中间件执行
路由级中间件的定义和全局中间没有任何不同。
区别在于不要在main函数注册,而是在控制器注册
一段控制器的Build函数
func(this *IndexController) Build(goft *goft.Goft){
goft.Handle("GET","/",this.Index).
HandleWithFairing("GET","/test",
this.IndexTest,
middlewares.NewIndexTest())
}
这个build函数定义了两个路由
1、/
2、/test
其中 我们在/test 这个路由上定义个 单独的中间件。注意全局中间件优先级最高,如果定义了路由中间件。两者都会执行
type IndexTest struct {
}
func NewIndexTest() *IndexTest {
return &IndexTest{}
}
func(this *IndexTest) OnRequest(ctx *gin.Context) error{
return nil
}
func(this *IndexTest) OnResponse(result interface{}) (interface{}, error){
if m,ok:=result.(gin.H);ok{
m["metadata"]="index test"
return m,nil
}
return result,nil
}
全局中间件 - 以前
跨域中间件
下一个 - 路由级中间件
示例:参数验证和业务分离
最近更新
1yr ago
复制链接