golang gin 获取请求中的查询参数,并设置默认值

更新日期: 2020-06-12 阅读次数: 11866 字数: 221 分类: golang

例如,我想给头条小程序提供一个接口,用来查询图书列表,并设置返回数量限制,在 golang gin 中可以使用

  • c.DefaultQuery("limit", "20") 设置默认值
  • c.Query("limit") 不设置默认值
func GetBooks(c *gin.Context) {
    limit := c.DefaultQuery("limit", "20")
    ...
}

默认值必须为字符串

如果使用 c.DefaultQuery("limit", 20) 来设置默认值,会报错:

cannot use 20 (type untyped int) as type string in argument to c.DefaultQuery

golang 看似啰嗦,实际上可以规避 int 与 string 的自动转换造成的潜在 bug。

为何要分成两个函数

因为 golang 函数不支持可选参数默认值。

gin 中 c.Query 与 c.Param 的区别

c.Query 是获取 URL 路径中问号后面的变量值。例如:

/api/books?limit=20

c.Param 是获取 URL 路径中问号前的对应值。例如:

/api/books/20

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式