Gin绑定Http GET查询参数

Get请求处理绑定参数常见方式:

  • query string: abc=123&xyz=456
  • form表单方式
  • json方式

Gin通过不同的bind方法来处理参数绑定,示例如下:

package main

import "log"
import "github.com/gin-gonic/gin"

type Person struct {
	Name    string `form:"name" json:"name"`
	Address string `form:"address" json:"address"`
}

func main() {
	route := gin.Default()
	route.GET("/testing", startPage)
	route.Run(":8085")
}

func startPage(c *gin.Context) {
	var person Person
    // only bind the query or post data
	if c.Bind(&person) == nil {
		log.Println("====== Bind By Query String ======")
		log.Println(person.Name)
		log.Println(person.Address)
	}

    // only bind the query
	if c.BindQuery(&person) == nil {
		log.Println("====== Only Bind Query String ======")
		log.Println(person.Name)
		log.Println(person.Address)
	}

    // only bind the json data
	if c.BindJSON(&person) == nil {
		log.Println("====== Bind By JSON ======")
		log.Println(person.Name)
		log.Println(person.Address)
	}

	c.String(200, "Success")
}
# bind by query
$ curl -X GET "localhost:8085/testing?name=appleboy&address=xyz"
本文由 络壳 原创或整理,转载请注明出处