将路由组织到单独的文件中是减少主路由器文件的混乱和复杂性的常见做法。在 Gin 中,这可以通过利用 Group 方法来实现。
一种方法是将路由器变量存储为结构成员或全局变量,允许单个文件向其添加处理程序。这是一个示例:
<code class="go">package app import ( "github.com/gin-gonic/gin" ) type routes struct { router *gin.Engine } func NewRoutes() routes { r := routes{ router: gin.Default(), } v1 := r.router.Group("/v1") r.addPing(v1) r.addUsers(v1) return r } func (r routes) Run(addr ...string) error { return r.router.Run() }</code>
<code class="go">package app import "github.com/gin-gonic/gin" func (r routes) addPing(rg *gin.RouterGroup) { ping := rg.Group("/ping") ping.GET("/", pongFunction) } func pongFunction(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }</code>
<code class="go">package app import "github.com/gin-gonic/gin" func (r routes) addUsers(rg *gin.RouterGroup) { users := rg.Group("/users") users.GET("/", getUsersFunction) } func getUsersFunction(c *gin.Context) { c.JSON(200, gin.H{ "users": "...", }) }</code>
通过利用这种方法,每个函数文件都可以在其特定组中定义处理程序,保持主代码库的组织和模块化。
以上是如何构建 Gin 路由以实现干净的代码?的详细内容。更多信息请关注PHP中文网其他相关文章!