大規模なアプリケーションでのルートの管理は困難になり、メイン ファイルが乱雑で整理されていない状態になることがあります。これに対処するために、gin はルートを別のファイルにグループ化するメカニズムを提供し、メイン ファイルの複雑さを軽減します。
ルートを別のファイルにグループ化するには、ルーター変数を保存する必要があります。構造体またはグローバル変数内で。個々の go ファイルは、この変数にハンドラーを追加できます。以下に例を示します。
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>
このファイルは、gin ルーターへの参照を保持するルート構造体を定義します。 NewRoutes 関数は、この構造体の新しいインスタンスを作成し、ハンドラーを「/v1」グループに追加します。
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>
このファイルは、/ を追加します。 GET メソッドのハンドラーを使用してルーターに ping グループを送信します。
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>
このファイルは、ハンドラーを使用してルーターに /users グループを追加します。 GET メソッドの場合。
ルートを個別のファイルにグループ化し、メイン ルーターに追加することで、アプリケーションのサイズと複雑さが増大しても、アプリケーションのクリーンで組織化された構造を維持できます。
以上が効果的なアプリケーション管理のために、Gin でルートをグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。