package main

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

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

	// 基础 CRUD 路由
	r.GET("/products", func(c *gin.Context) {
		c.JSON(200, gin.H{"message": "Get all products"})
	})

	r.POST("/products", func(c *gin.Context) {
		c.JSON(201, gin.H{"message": "Product created"})
	})

	r.PUT("/products/:id", func(c *gin.Context) {
		id := c.Param("id")
		c.JSON(200, gin.H{"message": "Product updated", "id": id})
	})

	r.DELETE("/products/:id", func(c *gin.Context) {
		id := c.Param("id")
		c.JSON(200, gin.H{"message": "Product deleted", "id": id})
	})

	// 路由分组（推荐）
	api := r.Group("/api/v1")
	{
		api.GET("/users", func(c *gin.Context) {
			c.JSON(200, gin.H{"message": "Get all users"})
		})

		api.POST("/users", func(c *gin.Context) {
			c.JSON(201, gin.H{"message": "User created"})
		})

		// 嵌套分组
		users := api.Group("/users")
		{
			users.GET("/:id", func(c *gin.Context) {
				id := c.Param("id")
				c.JSON(200, gin.H{"message": "Get user", "id": id})
			})

			users.PUT("/:id", func(c *gin.Context) {
				id := c.Param("id")
				c.JSON(200, gin.H{"message": "User updated", "id": id})
			})
		}
	}

	r.Run(":9999")
}
