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")
}
相关推荐
高级程序源6 分钟前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
谢亮_vipxieliang10 分钟前
JavaScript this 指向完全指南:调用位置决定一切
开发语言·javascript·ecmascript
denlaku16 分钟前
JDK 13 新特性详解
java·开发语言
打工仔折腾 AI18 分钟前
极空间用 Docker 部署 Photopea:网页版 PS 的私有化实践
运维·后端·python·docker·容器·langchain·ai agent 实战
念越28 分钟前
题库、练习与错题本代码阅读
开发语言·数据结构
l1t30 分钟前
几种数据库软件count(distinct)和count()from group by子查询性能测试
开发语言·数据库
熊猫钓鱼>_>39 分钟前
大学图论第 6 讲:网络流与二分图匹配——对偶性让瓶颈自己现形
开发语言·算法·面试·职场和发展·图论·校招·面经
方便面不加香菜39 分钟前
C++ 关于多态的知识点讲解
开发语言·c++
掘金者阿豪1 小时前
别只会docker stats了:cAdvisor把CPU、内存、磁盘和网络监控搬进Web页面
后端
企业数字化笔记1 小时前
多租户系统从哪里开始设计?租户身份、数据隔离、权限与套餐的整体方案
java·spring boot·后端·junit