我有一个这样的用户模型:
type User struct {
Name string
Enabled bool // this is an bool field
Online bool // this is an bool field
// other field ...
}
创建用户时:
POST /api/v1/users
{
"name": "hello",
"enabled": true // option, default is true
}
创建请求模型为:
type CreateUserReq struct {
Name string
Enabled bool // but golang default value is false
}
何时列出用户:
GET /api/v1/users // list all users, but golang default value is false
GET /api/v1/users?enabled=true // list enabled users
GET /api/v1/users?enabled=false // list disabled users
列表请求模型为:
type ListUserReq struct {
Status bool // but golang default value is false
}
解决此问题的常用方法是什么?
最佳答案
没有初始值的变量将被赋予零值。
对于 boolean 类型,零值为false
。 Ref
您可以使用零值为bool
的nil
指针。然后您可以检查是否设置了Enabled
。并在处理程序中检查Enabled
是否为nil
,然后将其设置为true
(默认情况下)。
type CreateUserReq struct {
Name string
Enabled *bool
}
关于rest - 如何在 Restful 环境中设计 boolean 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62035967/