Organiser les routes dans des fichiers séparés est une pratique courante pour réduire l'encombrement et la complexité d'un fichier de routeur principal. Dans Gin, cela peut être réalisé en tirant parti de la méthode Group.
Une approche consiste à stocker la variable du routeur en tant que membre de structure ou variable globale, permettant aux fichiers individuels d'y ajouter des gestionnaires. Voici un exemple :
<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>
En utilisant cette approche , chaque fichier de fonction peut définir des gestionnaires au sein de son groupe spécifique, gardant la base de code principale organisée et modulaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!