Github地址:https://github.com/dengshulei/gin-auto-router
Gitee地址:https://gitee.com/dengshulei/gin-auto-router
$ cat main.go
package main import "demo1/router" func main() { //加载路由 r := router.InitRouter() _ = r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") }自动生成路由的主文件
# router下的文件InitRouter.go $ cat InitRouter.go
package router import ( _ "demo1/app/controller" //一定要导入这个Controller包,用来注册需要访问的方法 ginAutoRouter "github.com/dengshulei/gin-auto-router" "github.com/gin-gonic/gin" ) func InitRouter() *gin.Engine { //初始化路由 r := gin.Default() //绑定基本路由,访问路径:/Article/List ginAutoRouter.Bind(r) return r }控制器文件
# controller下的文件Article.go $ cat Article.go
package controller import ( ginAutoRouter "github.com/dengshulei/gin-auto-router" "github.com/gin-gonic/gin" "net/http" ) func init() { ginAutoRouter.Register(&Article{}) } type Article struct {} func (api *Article) List(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "code": 1, "msg": "ok", "data": "Article:List", }) } func (api *Article) Test(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "code": 1, "msg": "ok", "data": "Article:Test", }) }使用方法二: 示例代码demo2 利用gin的分组路由Group实现路由分组,并对指定的分组使用登录验证等中间件。 实现的效果是:登录接口“/auth”可以直接访问,只有登录成功的才可以访问“/v1/Article/List” 大多的文件都是与方法一类似,只有路由相关文件有细微的区别,详细的情况请查看示例代码 demo2 路由相关文件
$ cat InitRouter.go
package router import ( _ "demo2/app/controller/v1" //一定要导入这个Controller包,用来注册需要访问的方法 "demo2/router/middleware/jwt" ginAutoRouter "github.com/dengshulei/gin-auto-router" "github.com/gin-gonic/gin" ) func InitRouter() *gin.Engine { //初始化路由 r := gin.Default() //开启v1分组 v1Route := r.Group("/v1") //加载并使用登录验证中间件 v1Route.Use(jwt.JWT()) { //绑定Group路由,访问路径:/v1/Article/List ginAutoRouter.BindGroup(v1Route) } return r }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)