0
点赞
收藏
分享

微信扫一扫

gin工程目录下的路由拆分注册

目录结构以下图示意

gin工程目录下的路由拆分注册_Group

1.定义一个注册路由函数

package routers

import (
	"github.com/gin-gonic/gin"
	"go_kuan/routers/RoterAuth"
)

//编辑是总路由文件routers-->routers.go
// 注册路由方法
func RegisterRouters(r *gin.Engine) {
	apiGroup := r.Group("/api")
	RoterAuth.RegisterSubRouter(apiGroup)
}

2.创建用户认证的路由以及文件

package RoterAuth

import (
	"github.com/gin-gonic/gin"
	"go_kuan/controllers/ContrAuth"
)

//定义一个登录接口方法
func login(authGroup *gin.RouterGroup){
    // 注意:这里调用方法不要加() 这里不是运行调用的函数
	authGroup.POST("/login", ContrAuth.Login)
}
//定义一个退出接口方法
func login(authGroup *gin.RouterGroup){
    // 注意:这里调用方法不要加() 这里不是运行调用的函数
	authGroup.POST("/log", ContrAuth.Logout)
}

// 配置登录功能的路由策略方法
func RegisterSubRouter(g *gin.RouterGroup) {
    authGroup := g.Group("/auth")
    login(authGroup)
	logout(authGroup)
}

3.创建登录路由处理函数(控制器)

package ContrAuth

import (
	"github.com/gin-gonic/gin"
	"go_kuan/utils/utilsLogs"
)
// 定义一个结构体用于接收参数绑定到
type UserInfo struct{
    Username string `json:"username"`
    Password string `json:"password"`
}

// 处理登录的逻辑
func Login(r *gin.Context){
	// 获取前端传递用户和密码
    userinfo := UserInfo{}
    if err := r.ShouldBindJSON(&userinfo); err !=nil{
        r.JSON(200, gin.H{
            "msg": err.Error(),
            "status": 401,
        })
        return
    }
    utilsLogs.Info(map[string]interface{}{"username":userinfo.Username,
                                          "password":userinfo.Password,
                                         "登录成功"})
}

举报

相关推荐

0 条评论