package main

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

// 定义数据结构体
type UserJSON struct {
	Name  string `json:"name"`
	Email string `json:"email"`
	Age   int    `json:"age"`
}

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

	r.POST("/users", func(c *gin.Context) {
		var user UserJSON

		// 方式 1：ShouldBindJSON（推荐，错误时不会中断）
		if err := c.ShouldBindJSON(&user); err != nil {
			c.JSON(400, gin.H{"error": err.Error()})
			return
		}

		// 业务逻辑
		c.JSON(201, gin.H{
			"message": "User created",
			"data":    user,
		})
	})

	r.Run(":9999")
}
