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

文章目录

    例如,我想给头条小程序提供一个接口,用来查询图书列表,并设置返回数量限制,在 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式