在 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
我正在开发一个使用 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