はじめに
今回は、簡単な内容ですが、Ginでのルーティングファイルについて、共有させて頂きます。
サンプルコード
以下のファイルは、それぞれ
$HOME/go/src/github.com/myProject/myRepository/
直下にあるとします。
ghqでプロジェクト管理した感じを想定してます。
server/routes.go
package server
import (
"net/http"
"github.com/myProject/myRepository/handler"
"github.com/gin-gonic/gin"
)
func defineRoutes(r gin.IRouter) {
v1 := r.Group("/")
{
v1.GET("/test", handler.myFunction)
}
}
handler/yay.go
package handler
import (
"github.com/gin-gonic/gin"
)
func myFunction(c *gin.Context) {
// ここに処理を書く
}
実際にアクセスする際のURL
http://hogehoge.com/test
関数の定義でスッキリさせる
server/routes.go下方
func defineRoutes(r gin.IRouter) {
v1 := r.Group("/")
{
v1.GET("/test", handler.myFunction)
}
}
ここでv1
を用意することで、URLが増えてきても、すっきり分かりやすく追加していける。
ちなみに、たくさんルーターを用意した場合、こんな感じになります。
ルーターが増えてきたときのイメージ
v1 := r.Group("/")
{
v1.GET("/test", handler.myFunction)
}
{
v1.POST("/test2", handler.myFunction2)
v1.PUT("/test2/create", handler.myFunction3)
v1.GET("/test2/hoge", handler.myFunction4)
v1.DELETE("/test2/delete", handler.myFunction5)
}
{
v1.GET("/test3/fuga", handler.myFunction6)
v1.GET("/test3", handler.myFunction7)
}
{
v1.GET("/test4/poon", handler.myFunction8)
}
増えてきても、すっきりしています。
この辺りは、よくあるFWのルーティングファイルの書き方と似ていて分かりやすいですね。
さいごに
今回は、解説なしで共有だけさせて頂きました。
いつか、理解を深めてがっつり解説したい。
最期まで、ありがとうございました。