ルートを個別のファイルに整理することは、メインのルーター ファイルの煩雑さと複雑さを軽減するための一般的な方法です。 Gin では、これは Group メソッドを活用することで実現できます。
1 つのアプローチは、ルーター変数を構造体のメンバーまたはグローバル変数として保存し、個々のファイルがそれにハンドラーを追加できるようにすることです。以下に例を示します。
<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>
このアプローチを利用することにより、各関数ファイルはその特定のグループ内でハンドラーを定義でき、メインのコードベースを組織化してモジュール化した状態に保ちます。
以上がクリーンなコードを実現するためにジン ルートを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。