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")
}
相关推荐
IT_陈寒10 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
流浪克拉玛依11 小时前
Go Web 服务限流器实战:从原理到压测验证 --使用 Gin 框架 + Uber Ratelimit / 官方限流器,并通过 Vegeta 进行性能剖析
后端
孟沐11 小时前
保姆级教程:手写三层架构 vs MyBatis-Plus
后端
星浩AI11 小时前
让模型自己写 Skills——从素材到自动生成工作流
人工智能·后端·agent
华仔啊13 小时前
为啥不用 MP 的 saveOrUpdateBatch?MySQL 一条 SQL 批量增改才是最优解
java·后端
武子康14 小时前
大数据-242 离线数仓 - DataX 实战:MySQL 全量/增量导入 HDFS + Hive 分区(离线数仓 ODS
大数据·后端·apache hive
砍材农夫14 小时前
TCP和UDP区别
后端
千寻girling15 小时前
一份不可多得的 《 Django 》 零基础入门教程
后端·python·面试
千寻girling15 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
贾铭15 小时前
如何实现一个网页版的剪映(三)使用fabric.js绘制时间轴
前端·后端