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

更新日期: 2020-06-12 阅读次数: 1040 字数: 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 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

爱评论不评论

近期节日

2020年10月23日 霜降
2020年10月24日 联合国日
2020年10月25日 重阳节
2020年10月31日 世界勤俭日
2020年11月01日 万圣节
2020年11月07日 立冬
2020年11月08日 中国记者日
2020年11月10日 世界青年节
2020年11月11日 光棍节
2020年11月14日 世界糖尿病日
2020年11月17日 国际大学生节
2020年11月20日 国际儿童日
查看更多节日