当前位置: 首页 > news >正文

Go语言开发用户登录功能基础设计

定义用户处理器

package zdpgo_gin_login// UserHandler 用户处理器,定义用户相关的路由
type UserHandler struct{}

定义常用的方法

// Login 登录方法
func (h *UserHandler) Login(c *gin.Context) {}// Logout 注销方法
func (h *UserHandler) Logout(c *gin.Context) {}// Register 注册方法
func (h *UserHandler) Register(c *gin.Context) {}// GetByID 获取个人信息
func (h *UserHandler) GetByID(c *gin.Context) {}// UpdateByID 根据ID修改个人信息
func (h *UserHandler) UpdateByID(c *gin.Context) {}

使用gin创建路由并使用

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"ginLogin "github.com/zhangdapeng520/zdpgo_gin_login"_ "github.com/zhangdapeng520/zdpgo_mysql"
)func main() {server := gin.Default()user := &ginLogin.UserHandler{}server.POST("/user/register", user.Register)server.POST("/user/login", user.Login)server.GET("/user/:id", user.GetByID)server.PUT("/user/:id", user.UpdateByID)server.Run(":8888")
}

直接封装一个初始化路由的方法

// InitRouter 初始化路由的方法
func (h *UserHandler) InitRouter(engine *gin.Engine) {userGroup := engine.Group("/zdpgo_gin_login/user")userGroup.POST("/register", h.Register)userGroup.POST("/login", h.Login)userGroup.GET("/:id", h.GetByID)userGroup.PUT("/:id", h.UpdateByID)
}

此时入口代码会变少很多

package mainimport (gin "github.com/zhangdapeng520/zdpgo_gin"ginLogin "github.com/zhangdapeng520/zdpgo_gin_login"_ "github.com/zhangdapeng520/zdpgo_mysql"
)func main() {server := gin.Default()user := &ginLogin.UserHandler{}user.InitRouter(server)server.Run(":8888")
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • keepalived和lvs高可用集群
  • 【秋招笔试】9.07米哈游秋招改编题-三语言题解
  • Flutter之命名路由页面传值
  • 连接池-druid
  • 基于yolov8的人脸检测计数系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 最新HTML5中的文件详解
  • 使用python批量计算栅格像元值(像元总值等)
  • vulhub spring 远程命令执行漏洞(CVE-2016-4977)
  • 【ArcGIS Pro第一期】界面简介
  • Python开发学习之Python和Excel的数据实现互通
  • Vue 向标签中传入 this
  • 【Linux】进程控制(一)
  • 简单实用的php全新实物商城系统
  • 使用Ansible进行自动化运维
  • 期货赫兹量化-种群优化算法:进化策略,(μ,λ)-ES 和 (μ+λ)-ES
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • js正则,这点儿就够用了
  • magento 货币换算
  • Python socket服务器端、客户端传送信息
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 初识MongoDB分片
  • 高度不固定时垂直居中
  • 机器学习中为什么要做归一化normalization
  • 坑!为什么View.startAnimation不起作用?
  • 码农张的Bug人生 - 初来乍到
  • 深度学习入门:10门免费线上课程推荐
  • 消息队列系列二(IOT中消息队列的应用)
  • 《码出高效》学习笔记与书中错误记录
  • 阿里云服务器如何修改远程端口?
  • # wps必须要登录激活才能使用吗?
  • (1)虚拟机的安装与使用,linux系统安装
  • (5)STL算法之复制
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (八)Flink Join 连接
  • (接口自动化)Python3操作MySQL数据库
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (小白学Java)Java简介和基本配置
  • (转)母版页和相对路径
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net mvc部分视图
  • .Net 执行Linux下多行shell命令方法
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET的数据绑定
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源快速、强大、免费的电子表格组件
  • .NET设计模式(11):组合模式(Composite Pattern)
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @SuppressWarnings注解
  • [android] 切换界面的通用处理
  • [AutoSar]BSW_Com02 PDU详解
  • [GWCTF 2019]我有一个数据库1