omitempty 能让响应更简洁,但也会隐藏零值。比如数量为 0、布尔值 false,在某些业务里是明确状态,不应该被省略。

type Resp struct {
    Enabled bool `json:"enabled"`
    Count   int  `json:"count"`
}

如果字段必须表达“没有值”和“值为零”的区别,可以使用指针类型或额外状态字段。不要让调用方猜字段不存在到底是什么意思。

接口设计里,省几个字节通常不如语义稳定重要。尤其是前后端联调时,字段忽隐忽现会增加很多兼容成本。

分类: Go 语言笔记 标签: Go Web API API设计

评论

-- 评论已关闭 --

全部评论