golang小实习生,第一次做分配的接口开发任务,首先定义结构体如下:
type TagInfo struct {
Tag string `form:"tag" json:"tag"`
TagName string `form:"tag_name" json:"tag_name"`
}
type TagInfos struct {
tags []*TagInfo `form:"tags" json:"tags"`
}
该接口将TagInfos作为“data”字段的值返回,但测试的时候返回结果一直为空,而我debug时明确了从数据库中的确接收到了数据。
这时我尝试不把TagInfo的切片封装在TagInfos中,而是直接将其返回,在postman中就能看到数据了。
思索了一会儿,我发现TagInfos的tags字段首字母是小写,golang中依据首字母大小写来判定能否被其他包调用,所以此时该字段无法被Gin框架中的其他包访问,因此返回前端的数据自然就为空了。所以将该字母改为大写,问题解决。