golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程示例

30 篇文章 0 订阅
28 篇文章 2 订阅

该章节我们以用户管理这一需求为例,阐述如何进行控制器编程。

首先我们分析用户管理需要的接口如下

用户管理模块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.天天任务清单小程序

https://github.com/winlion/dailytask

10.工业大数据采集

10.restgo cms 

10.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


  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值