0
点赞
收藏
分享

微信扫一扫

Go gin框架

烟中雯城 2022-01-22 阅读 73

1.表单数据

  • form:前端表单数据名称
  • required:表示字段是必须的
type User struct {
    UserName string  `form: "user_name" binding: "required"`
    Phone    string  `form: "phone" binding: "required"`
    Passwd   string  `form: "password" binding: "required"`
}

2.表单实体绑定(get请求)

query_params参数

package main

import (
	"fmt"
	"log"

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

type User struct { /*  */
	UserName string `form:"user_name" binding:"required"`
	PassWD   string `form:"password" binding:"required"`
}

func main() {
	engine := gin.Default()
	engine.GET("/hello", func(ctx *gin.Context) {
		fmt.Println("请求路径:", ctx.FullPath())

		var user User
		err := ctx.ShouldBindQuery(&user)
		if err != nil {
			log.Fatal("err:", err.Error())
            return
		}

		fmt.Println("userName:", user.UserName)
		fmt.Println("Password:", user.PassWD)

		ctx.Writer.Write([]byte("hello, gin\n"))
	})

	if err := engine.Run(":8090"); err != nil {
		log.Fatal(err.Error())
	}

}

3.表单实体绑定(post请求)

form-data参数

package main

import (
	"fmt"
	"log"

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

type User struct { /*  */
	UserName string `form:"user_name" binding:"required"`
	PassWD   string `form:"password" binding:"required"`
}

func main() {
	engine := gin.Default()
	engine.POST("/hello2", func(ctx *gin.Context) {
		fmt.Println("请求路径:", ctx.FullPath())

		var user User
		err := ctx.ShouldBind(&user)  // post方法绑定实体
		if err != nil {
			log.Fatal("err:", err.Error())
			return
		}

		fmt.Println("userName:", user.UserName)
		fmt.Println("Password:", user.PassWD)

		ctx.Writer.Write([]byte("hello, gin\n"))
	})

	if err := engine.Run(":8090"); err != nil {
		log.Fatal(err.Error())
	}

}

 4.表单实体绑定(post请求)

json参数

注意:json格式传递参数时,struct中定义的字段名字与请求参数名称相同,与tag中的form定义无关

package main

import (
	"fmt"
	"log"

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

type User struct { /*  */
	UserName string `form:"user_name" binding:"required"`
	PassWD   string `form:"password" binding:"required"`
}

func main() {
	engine := gin.Default()
	engine.POST("/hello3", func(ctx *gin.Context) {
		fmt.Println("请求路径:", ctx.FullPath())

		var user User
		err := ctx.BindJSON(&user) // post方法绑定
        // err := ctx.ShouldBindJSON(&user) // post方法绑定
		if err != nil {
			log.Fatal("err:", err.Error())
			return
		}

		fmt.Println("userName:", user.UserName)
		fmt.Println("Password:", user.PassWD)

		ctx.Writer.Write([]byte("hello, gin\n"))
	})

	if err := engine.Run(":8090"); err != nil {
		log.Fatal(err.Error())
	}

}

 

 

举报

相关推荐

Go 之 Gin 框架

go-gin框架

Go的Gin框架学习

Gin 框架入门(GO)-1

Go Web 开发【Gin 框架快速开发】

0 条评论