Gin框架请求数据绑定与多数据格式处理

1.ShouldBindQuery.go

package main

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

func  main(){
	engine:=gin.Default()
	//GET请求
	//http://localhost:8080/hello?name=davie&classes=软件工程
	engine.GET("/hello", func(context *gin.Context) {
		fmt.Println(context.FullPath())
		//数据与表单实体来进行绑定的一个操作
		var student Student
		err:=context.ShouldBindQuery(&student)
		if err!=nil{
			log.Fatal(err.Error())
		}
		fmt.Println(student.Name)
		fmt.Println(student.Classes)
		context.Writer.Write([]byte("hello,"+student.Name))

	})
	engine.Run()

}

type Student struct {
	Name string `form:"name"`
	Classes string  `form:"classes"`
}

2.ShouldBind.go

package main

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

//POST
/*
	在Postman软件中,设置访问方式为POST,网址为http://localhost:8080/register;在Body中选择x-www-form-urlencoded
	并填入:
	key:username  value:davie
	key:password  value:123
	key:phone      value:13260009966
*/
func main(){
	engine:=gin.Default()
	engine.POST("/register", func(context *gin.Context) {
		var register Register
		if err:=context.ShouldBind(&register);err!=nil{
			log.Fatal(err.Error())
			return
		}
		fmt.Println(register.UserName)
		fmt.Println(register.Phone)
		context.Writer.Write([]byte(register.UserName+" register"))
	})
	engine.Run()
}
type Register struct {
	UserName string `form:"username"`
	Phone string  `form:"phone"`
	Password string `form:"password"`
}

3.ShouldBindJSON.go

package main

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

func main(){
	engine:=gin.Default()
	engine.POST("/addStudent", func(context *gin.Context) {

		fmt.Println(context.FullPath())
		var person Person
		if err:=context.ShouldBindJSON(&person);err!=nil{
			log.Fatal(err.Error())
			return
		}
		fmt.Println("姓名:",person.Name)
		fmt.Println("年龄",person.Age)
		fmt.Println("性别",person.Sex)
		context.Writer.Write([]byte("添加记录"+person.Name))
	})
	engine.Run()
}

type Person struct {
	Name string `form:"name"`
	Sex string `form:"sex"`
	Age int `form:"age"`


}

具体相关设置:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36717487/article/details/107872424