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")
}
相关推荐
泡海椒30 分钟前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
Beyond_System|系统之外1 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
根目录下的猫2 小时前
RK3588适配的轻量级AI模型推荐
人工智能·后端·python·目标检测
景熙55232 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
星栈2 小时前
用 Rust 写 Agent 服务 -- adk-rust 上手记
后端·agent
杨运交3 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
LucianaiB3 小时前
我用豆包工作 Seed-2.1-pro,复刻了 QQ 时代爆红的魔术图片
后端
码事漫谈4 小时前
智谱 ZCode 静默上传 Git 历史:48 小时信任危机复盘
后端
掘金码甲哥4 小时前
当对话模型遇上向量模型,vllm production stack 又该如何应对?
后端