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
Libérer: 2024-11-02 21:09:02
original
765 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal