gin-路由分组

主函数:

//路由分组
func routegroup() {
	type Userinfo struct {
		Username string `form:"username" json:"user"`
		Password string `form:"password" json:"password"`
	}

	r := gin.Default()

	//调用文件routes包下的路由分组
	routes.AdminRoutesInit(r)
	routes.ApiRoutesInit(r)
	routes.DefaultRoutesInit(r)

	r.Run(":9999")
}



func main() {

	//控制器分组
	//controllerlab()

	//路由分组的调用
	routegroup()
}


目录结构

 


routes:

新建 routes 文件夹, routes 文件下面新建
adminRoutes.go
apiRoutes.go
defaultRoutes.go
1.adminRoutes.go
package routes

import (
	"ginrouter/controller/admin"
	"github.com/gin-gonic/gin"
)

//http://127.0.0.1:9999/admin/user
func AdminRoutesInit(router *gin.Engine) {
	adminRouter := router.Group("/admin")
	{
		//adminRouter.GET("/user", func(c *gin.Context) { c.String(http.StatusOK, "用户") })
		//adminRouter.GET("/news", func(c *gin.Context) { c.String(http.StatusOK, "news") })

		//############333
		adminRouter.GET("/user", admin.UserController{}.Index)
		adminRouter.GET("/user/add", admin.UserController{}.Add)
		//adminRouter.GET("/news", admin.NewsController{}.Add)

	}
}

2.apiRoutes.go
package routes

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

//http://127.0.0.1:9999/api/news  测试的连接
//http://127.0.0.1:9999/api/user
func ApiRoutesInit(router *gin.Engine) {
	apiRoute := router.Group("/api")
	{
		apiRoute.GET("/user", func(c *gin.Context) {
			c.JSON(http.StatusOK, gin.H{"username": "tom", "age": 20})
		})
		apiRoute.GET("/news", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"title": "这是新闻"}) })
	}
}

3.defaultRoutes.go
package routes

import (
	"github.com/gin-gonic/gin"
)

//http://127.0.0.1:9999/  默认访问主页
func DefaultRoutesInit(router *gin.Engine) {
	defaultRoute := router.Group("/")
	{
		defaultRoute.GET("/", func(c *gin.Context) { c.String(200, "首页") })
	}
}


 运行后进行验证即可

### 关于 `gin-vue-admin` 的路由配置 #### 路由分组与权限控制 在 `gin-vue-admin` 中,可以定义不同类型的路由来区分需要鉴权和不需要鉴权的接口。对于私有路由(带有鉴权),通常会放在特定的路由组内以便统一处理认证逻辑;而公开路由则可以直接暴露给外部访问。 ```go // 私有路由示例 private := router.Group("/admin", middleware.JWTAuth()) { private.GET("/info", api.GetUserInfo) } // 公开路由示例 public := router.Group("/") { public.POST("/login", api.Login) } ``` 上述代码展示了如何通过中间件实现对部分API路径实施保护措施[^2]。 #### 手动创建 API 及 Router 当按照官方文档指导进行操作时,开发者可以选择自动化的包生成功能来自动生成所需的文件结构和服务方法。不过为了更好地理解整个流程以及满足定制化需求,在某些情况下还是建议手动编写这些组件: 1. **准备阶段**:确保环境搭建完毕并安装好必要的依赖库。 2. 创建新的控制器文件夹及其内部的具体业务逻辑处理器函数。 3. 编辑路由注册表以映射URL模式到对应的HTTP请求处理程序上。 具体步骤可参照相关学习资源进一步深入研究[^3]。 #### 数据库连接设置 要使应用程序能够正常读写数据存储层,则需事先调整位于项目根目录下的配置文件 (`config.yaml`) 来指定正确的MySQL服务器地址及其他必要参数: ```yaml mysql: path: "localhost:3306" db-name: "example_db" username: "db_user" password: "secure_password!" ``` 此段落描述了怎样修改默认值从而指向实际使用的数据库实例[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值