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")
}
相关推荐
Sherotree9 小时前
Google Antigravity——Agent 被提到主界面
前端·ide·后端·edge浏览器
2601_962056239 小时前
Spring Boot 入门 与 无法解析符号 springframework 的解决
java·spring boot·后端
luj_17689 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法
你驴我10 小时前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
后端·python
学长毕业设计10 小时前
基于SpringBoot的瑜伽馆网站的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
leonkay10 小时前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发
harmful_sheep10 小时前
java group by常见用法
java·开发语言·python
SKH.10 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库
Rain的Java大神之路11 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
whcyhhh11 小时前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python