例如,我想给头条小程序提供一个接口,用来查询图书列表,并设置返回数量限制,在 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 聊聊, 查看更多联系方式