该章节我们以用户管理这一需求为例,阐述如何进行控制器编程。
首先我们分析用户管理需要的接口如下
用户管理模块api描述 |
||||
编号 |
请求格式 |
接口描述 |
请求数据 |
响应数据 |
1 |
/user/query |
根据姓名、电话等注册时间等 |
|
|
2 |
/user/findOne |
根据用户编号获取基础信息 |
|
|
3 |
/user/login |
根据用户名、密码等进行登录操作 |
|
|
4 |
/user/register |
用户注册操作 |
|
|
5 |
/user/resetpwd |
用户重置密码 |
|
|
6 |
/user/edit |
编辑用户基础信息 |
|
|
7 |
/user/profile |
用户个人中心页面 |
|
|
我们以接口1为例说明
1、新建控制器,在controller文件夹下新建控制器UserController.go内容如下
package controller
import (
"restgo/restgo"
)
type UserController struct {
restgo.Controller
}
2、添加路由映射规则,对UserController结构体扩展如下方法
func (ctrl *UserController)Router(router *gin.Engine){ r := router.Group("user") r.Any("query",ctrl.query) }
3、实现query方法
func (ctrl *UserController)query(ctx *gin.Context){
var userArg model.UserArg
ctx.ShouldBindJSON(&userArg)
//下面根据userArg拼接sql查询条件获取数据
//var data = ...
//最后响应数据列表到前端
//restgo.ResultList(ctx,data,120)
}
4、重点说明:关于查询用的参数,我们不建议对参数名称采用特殊的处理,我们建议封装到一个结构体里面,如关于用户信息的查询参数,我们封装到UserArg结构体中。
type PageArg struct { Kword string `form:"kword"` Datefrom time.Time `form:"datefrom" time_format:"2006-01-02 15:04:05"` Dateto time.Time `form:"dateto" time_format:"2006-01-02 15:04:05"` Pagesize int `form:"pagesize" json:"pagesize"` Pagefrom int `form:"pagefrom" json:"pagefrom" validate:"gte=0"` Desc string `form:"desc" json:"desc"` Asc string `form:"asc" json:"asc"` } type UserArg struct { PageArg ttype string `form:"ttype" json:"ttype"` //用于区分是注册时间还是登陆时间 } //使用时候 当使用时,我们使用如下方法判断 var userArg model.UserArg ctx.ShouldBindJSON(&userArg) if len (userArg.Kword)>0{ }
本文源代码源代码获取地址 https://github.com/winlion/restgo
待提供源代码清单
10.1 restgo后台管理框架
https://github.com/winlion/restgo-admin
10.2 天天任务清单小程序
https://github.com/winlion/dailytask
10.3 工业大数据采集
10.4 restgo cms
10.5 restgo 千人大群
golang实战使用gin+xorm搭建go语言web框架restgo详解1.1 go语言的困境
golang实战使用gin+xorm搭建go语言web框架restgo详解1.2 我要做什么
golang实战使用gin+xorm搭建go语言web框架restgo详解2 框架基本架构
golang实战使用gin+xorm搭建go语言web框架restgo详解3 系统常用配置参数
golang实战使用gin+xorm搭建go语言web框架restgo详解4 路由配置
golang实战使用gin+xorm搭建go语言web框架restgo详解5 控制器C
golang实战使用gin+xorm搭建go语言web框架restgo详解5.2 跳转和重定向
golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器
golang实战使用gin+xorm搭建go语言web框架restgo详解5.4 控制器参数绑定
golang实战使用gin+xorm搭建go语言web框架restgo详解5.5 控制器模型绑定
golang实战使用gin+xorm 搭建 go语言web框架restgo搭建详解5.6 控制器参数校验
Golang go语言整合gin+xorm 搭建 web框架restgo搭建详解5.7 控制器数据响应
golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程
golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm
golang实战使用gin+xorm搭建go语言web框架restgo详解6.4 推荐编程方式
golang实战使用gin+xorm搭建go语言web框架restgo详解7 视图层V
golang实战使用gin+xorm搭建go语言web框架restgo详解8 关于模板
golang实战使用gin+xorm搭建go语言web框架restgo详解9 session、日志、鉴权
作者简介:胡文林,持续创业者,长期从事技术开源工作。微信号jiepool-winlion