tips:
go mod tidy
能够剖析代码中依赖的第三方包,而后在go.mod中将这些以来记录下来。
例如:想要获取query字段中的杨超过:http://127.0.0.1:9090/web?query=杨超过
形式一:Query
package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/web", func(c *gin.Context) { //这里要获取浏览器那边发申请携带的query string参数 name := c.Query("query") c.JSON(http.StatusOK, gin.H{ "name": name, }) }) r.Run(":9090")}
测试后果如下:
形式二:DefaultQuery
这其实和形式一类似,区别在于,如果没有查问到数据,能够用设置好的default数据:
package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/web", func(c *gin.Context) { //这里要获取浏览器那边发申请携带的query string参数 //name := c.Query("query") name := c.DefaultQuery("query", "someone") c.JSON(http.StatusOK, gin.H{ "name": name, }) }) r.Run(":9090")}
测试后果如下:
形式三:GetQuery
这个函数有2个返回值,其实就是多了一个bool值,如果去不到参数,第二个返回的就是false:
package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/web", func(c *gin.Context) { //这里要获取浏览器那边发申请携带的query string参数 //name := c.Query("query") //name := c.DefaultQuery("query", "someone") name, ok := c.GetQuery("query") if !ok { name = "someone" } c.JSON(http.StatusOK, gin.H{ "name": name, }) }) r.Run(":9090")}
我觉第三种形式,思考的比拟全面,我更喜爱应用,当然,另外两种形式也能够在适合的场景应用。
参考:bilibili