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框架中的其他包访问,因此返回前端的数据自然就为空了。所以将该字母改为大写,问题解决。