Gin 路由分组(嵌套)

package main

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

func main() {
	router := gin.Default()

	v1 := router.Group("v1")
	{
		server1 := v1.Group("server1")
		{
			server1.GET("/user", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v1/server1/user"})
			})
			server1.GET("/name", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v1/server1/name"})
			})

		}
		server2 := v1.Group("server2")

		{

			server2.GET("/user", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v1/server2/user"})
			})
			server2.GET("/name", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v1/server2/name"})
			})
		}

	}

	v2 := router.Group("v2")
	{
		server1 := v2.Group("server1")
		{
			server1.GET("/user", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v2/server1/user"})
			})
			server1.GET("/name", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v2/server1/name"})
			})
		}

		server2 := v2.Group("server2")
		{
			server2.GET("/user", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v2/server2/user"})
			})
			server2.GET("/name", func(ctx *gin.Context) {
				ctx.JSON(http.StatusOK, gin.H{"path": "/v2/server2/name"})
			})
		}

	}

	err := router.Run(":8080")
	if err != nil {
		panic(err)
	}
}


上一篇:Gin 中间件


下一篇:Gin Any方法路由