控制器
基本定义
文件名譬如是:IndexController 。建议和struct名称一模一样。一个文件只能放一个struct
控制器名称建议 是大写首字母+Controller
注意:
1、控制器必须有个Name方法,且必须返回string,没有参数
2、必须是指针结构体
3、必须有个build方法,用来注册路由
常用写法
返回string
func(this *IndexController) Index(ctx *gin.Context) string {
return "111"
}
返回json
type Person struct {
ID string `uri:"id" binding:"required,uuid"`
Name string `uri:"name" binding:"required"`
}
func(this *IndexController) Index (ctx *gin.Context) Web.Json {
return &Person{ID:"1111",Name:"wike"}
}
func(this *IndexController) Index(ctx *gin.Context) Web.Json {
return gin.H{"resut":"test"}
}
抛出错误
func(this *IndexController) Index (ctx *gin.Context) Web.Json {
u:=&User{}
fmt.Println(this.Db)
Web.Error(fmt.Errorf("抛出一个错误"),"这个是返回的提示消息")
}
func(this *IndexController) Index (ctx *gin.Context) Web.Json {
Web.Throw("错误消息",500,ctx)
}
sql相关
根据sql返回数组对象
func(this *IndexController) Index (ctx *gin.Context) sql.Query {
return sql.SimpleQuery("select * from users where user_id > ?").WithArgs(1)
}
根据sql返回单个对象
func(this *IndexController) Index (ctx *gin.Context) sql.Query {
return sql.SimpleQuery("select * from users where user_id = ?").WithArgs(1).WithFirst()
}
根据sql返回数据添加key 返回数据为 { "result": { "name" : "wike" , "id" : 1 } }
func(this *IndexController) Index (ctx *gin.Context) sql.Query {
return sql.SimpleQuery("select * from users where user_id = ?").WithArgs(1).WithFirst().WithKey("result")
}
根据sql返回数据将数据转换为map后二次加工后返回
func(this *IndexController) Index (ctx *gin.Context) Web.Json {
//u:=&User{}
ret:= sql.SimpleQuery("select * from users where user_id = ?").WithArgs(1).WithFirst().Get()
m := ret.(map[string]interface{})
m["additive"]="添加一些数据"
return m
}
最后更新于
这有帮助吗?