【问题标题】:golang gin: router like django?golang gin:像 django 这样的路由器?
【发布时间】:2015-10-05 20:57:08
【问题描述】:

gin 可以像 django 一样描述路由吗?

在所有示例中,路由器都在一个位置,从未找到有关附件的信息。

我想在包中描述路由,而在主文件中只是简单地写一些类似的东西。 示例:

r := gin.New()
r.Include("/main", here_imported_route.Route)

here_imported_route.go

package here_imported_route

Router := gin.New()
Router.Use(midl())
Router.Get("/test", hello)

然后在“/main/test”上我们得到“hello”。

【问题讨论】:

  • 你为什么要这样做?有什么不满意的方式杜松子酒?
  • 我不知道杜松子酒。我要干。我有 pkg​​ auth,我希望它用作 route.Include(path, route_from_auth_pkg)。
  • 很遗憾我不明白你需要什么。
  • 我写了例子,mb它有帮助。 github.com/FireGM/gin-example

标签: go


【解决方案1】:

像这里这样的主要路线

package main

import (
  "path_to_pkg/pkg"

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

var r *gin.Engine

func init() {
  r = gin.New()
  pkg.Concon(r.Group("/pkg"))

}

func main() {
  r.Run(":8080")
}

在导入的包中创建连接函数

pkg.go

package pkg

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

func Concon(g *gin.RouterGroup) {
  g.GET("/ping", func(c *gin.Context) {
    c.String(200, "pong")
  })
}

打开 127.0.0.1:8080/pkg/ping 并获得“pong”

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,我认为您可以通过路由分组来完成此操作。所以你会有这样的东西:

    r := gin.New()
    main := r.Group("/main")
    {
      main.GET("/test", hello)
    }
    

    查看更多详情here

    【讨论】:

    • 没有。我说的是便携性。用于在包中写入路由器,然后从包的路由中执行主路由。对不起我的英语不好。
    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    相关资源
    最近更新 更多