定义用户处理器
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")
}