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

定义用户处理器

go 复制代码
package zdpgo_gin_login

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

定义常用的方法

go 复制代码
// 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创建路由并使用

go 复制代码
package main

import (
	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")
}

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

go 复制代码
// 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)
}

此时入口代码会变少很多

go 复制代码
package main

import (
	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")
}
相关推荐
wn531几秒前
【Go - 类型断言】
服务器·开发语言·后端·golang
Hello-Mr.Wang13 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把16 分钟前
Java基础之IO流
java·开发语言
WG_1717 分钟前
C++多态
开发语言·c++·面试
宇卿.24 分钟前
Java键盘输入语句
java·开发语言
希冀12324 分钟前
【操作系统】1.2操作系统的发展与分类
后端
Amo Xiang33 分钟前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
friklogff1 小时前
【C#生态园】提升C#开发效率:深入了解自然语言处理库与工具
开发语言·c#·区块链
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记