"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como organizar rotas no Gin: um guia para definição de rotas agrupadas?

Como organizar rotas no Gin: um guia para definição de rotas agrupadas?

Publicado em 2024-11-08
Navegar:260

How to Organize Routes in Gin: A Guide to Grouped Route Definition?

Como organizar rotas no Gin

Para evitar sobrecarregar o arquivo principal com definições de rotas, você pode agrupar rotas em arquivos separados. Essa abordagem permite melhor organização e manutenção do código.

Para criar um agrupamento de rotas aninhadas, você pode armazenar a variável do roteador em uma estrutura ou variável global. Arquivos individuais podem então adicionar manipuladores a esta instância de roteador compartilhado.

Exemplo de implementação

routes.go

package app

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

type routes struct {
    router *gin.Engine
}

func NewRoutes() routes {
    return routes{
        router: gin.Default(),
    }
}

func (r routes) addPing(rg *gin.RouterGroup) { }
func (r routes) addUsers(rg *gin.RouterGroup) { }

func (r routes) Run(addr ...string) error { return r.router.Run() }

ping.go

package app

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

func (r routes) addPing(rg *gin.RouterGroup) {
    ping := rg.Group("/ping")
    ping.GET("/", pongFunction)
}

users.go

package app

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

func (r routes) addUsers(rg *gin.RouterGroup) {
    users := rg.Group("/users")
    users.GET("/", getUsersFunction)
}
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3