q66262 发表于 2018-9-20 07:09:06

初学Golang:Gin 框架中文文档教程

// Binding from JSON  type Login struct {
  User   string `form:"user" json:"user" binding:"required"`
  Password string `form:"password" json:"password" binding:"required"`
  }
  func main() {
  router := gin.Default()
  // 绑定JSON的例子 ({"user": "manu", "password": "123"})
  router.POST("/loginJSON", func(c *gin.Context) {
  var json Login
  if c.BindJSON(&json) == nil {
  if json.User == "manu" && json.Password == "123" {
  c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
  } else {
  c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
  }
  }
  })
  // 绑定普通表单的例子 (user=manu&password=123)
  router.POST("/loginForm", func(c *gin.Context) {
  var form Login
  // 根据请求头中 content-type 自动推断.
  if c.Bind(&form) == nil {
  if form.User == "manu" && form.Password == "123" {
  c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
  } else {
  c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
  }
  }
  })
  // 绑定多媒体表单的例子 (user=manu&password=123)
  router.POST("/login", func(c *gin.Context) {
  var form LoginForm
  // 你可以显式声明来绑定多媒体表单:
  // c.BindWith(&form, binding.Form)
  // 或者使用自动推断:
  if c.Bind(&form) == nil {
  if form.User == "user" && form.Password == "password" {
  c.JSON(200, gin.H{"status": "you are logged in"})
  } else {
  c.JSON(401, gin.H{"status": "unauthorized"})
  }
  }
  })
  // Listen and serve on 0.0.0.0:8080
  router.Run(":8080")
  }

页: [1]
查看完整版本: 初学Golang:Gin 框架中文文档教程