
目录 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条)