Maison >développement back-end >Golang >Comment structurer vos itinéraires Gin pour un code propre ?

Comment structurer vos itinéraires Gin pour un code propre ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 21:09:02850parcourir

How to Structure Your Gin Routes for Clean Code?

Regrouper les routes dans Gin pour un code propre

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 :

routes.go

<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>

ping.go

<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>

users.go

<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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn