目录 Gin编写一个Gin实例方式1 - Query()方式2 - GetQuery()方式3 - DefaultQuery() Gin参考资料:李文周的博客 - Gin框架介绍及使用
Bilibili链接:【最新Go Web开发教程】基于gin框架和gorm的web开发实战 (七米出品)
Gin是Golang最流行的Web框架,GitHub上有32K+ Star,是基于httprouter开发的简单易用的轻量级Web框架。
首先新建一个Go modules项目,在Environment中添加GOPROXY=http://goproxy.cn
。
新建项目完成之后,右键单击左侧的文件夹,选择“Open In”→“Terminal”在终端中打开,输入命令go get -u github.com/gin-gonic/gin
下载并导入Gin的依赖。
在项目的go.mod文件中可以看到导入的依赖:
新建main.go文件,写入如下代码创建一个Gin实例:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个默认的路由引擎
engine := gin.Default()
engine.GET("/web", func(context *gin.Context) {
// TODO 获取浏览器发送请求携带的querystring
})
err := engine.Run() // 默认端口号为8080
if err != nil {
return
}
}
Querystring指的是URL中?
后面携带的参数。下面介绍获取querystring参数的几种方式。
Query()
的函数原型为func (c *Context) Query(key string) string
,函数返回的字符串即为querystring。
name := context.Query("query")
context.JSON(http.StatusOK, gin.H{
"name": name,
})
方式2 - GetQuery()
GetQuery()
的函数原型为func (c *Context) GetQuery(key string) (string, bool)
,可以看出它与Query()
的不同是它返回了querystring和一个布尔值,即如果没有成功获取到querystring,第二个返回值为false
。
实际上如果查看Query()
的源码,我们可以发现Query()
就是调用了GetQuery()
,只是忽略了返回的布尔值。
func (c *Context) Query(key string) string {
value, _ := c.GetQuery(key)
return value
}
下面编写Gin实例。如果获取不到querystring,即ok
为false
时,就将querystring设置为somebody
。
name, ok := context.GetQuery("query")
if !ok {
name = "somebody"
}
context.JSON(http.StatusOK, gin.H{
"name": name,
})
方式3 - DefaultQuery()
DefaultQuery()
的函数原型为func (c *Context) DefaultQuery(key string, defaultValue string) string
,它有两个参数,当获取不到key
作为querystring时,则采用defaultValue
作为querystring。DefaultQuery()
可以看作是简化版的GetQuery()
,其源码如下:
func (c *Context) DefaultQuery(key, defaultValue string) string {
if value, ok := c.GetQuery(key); ok {
return value
}
return defaultValue
}
下面编写Gin实例。如果获取不到querystring,就将querystring设置为somebody
(即设置defaultValue
参数为somebody
)。
name := context.DefaultQuery("query", "somebody")
context.JSON(http.StatusOK, gin.H{
"name": name,
})
除此之外还有很多方法,在此不一一列举。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)