在 Golang 中获取从 URL 查询到的位图类型过滤器

Get a Bitmap type filter queried from URL in Golang

我正在开发一个使用 Gin 框架构建的大型 Go 网络应用程序。 API中有一个请求用户信息,有一个过滤参数,其输入类型为bitmap,表示用户是在线还是离线:

// SearchUsers API parameter: filterUser
// filterUser is a bitmap
Online: 1 << 0
Offline: 1 << 1


// Values:
0 -> not used
1 -> online
2 -> offline
3 -> all (online, offline)

现在我正在使用 Request.URL.Query 解析所有 API 参数。我想知道这是否也适用于位图类型?我是否需要创建一个 []byte 来处理输入,然后将其转换为整数以供数据库查询?

func (h *HandleManager) SearchUsers() gin.HandlerFunc {
    return func(c *gin.Context) {
        // ...
        q := c.Request.URL.Query()
        filterUsers := q.Get("filterUser")
        if filterUsers != "" {
            filterUsersByte := []byte(filterUsers)
        } 

q.Get() returns 一个 string 值保存(可能取决于客户端)您的位图的十进制表示。将其转换为 []byte 将为您提供字符串的 UTF-8 编码字节。这不是你想要的。

使用strconv.Atoi()从字符串中解析数字,例如:

filterUsers := q.Get("filterUser")
bitmap, err := strconv.Atoi(filterUsers)
if err != nil {
    // Handle error
}
// Use bitmap