我是Go和GoRest的新手,但我对此有疑问。
如何在gorest EndPoint语法中为下面描述的输出数据提供JSON对象ID?
我有一个简单的例子:
type HelloService struct {
gorest.RestService `root:"/api" consumes:"application/json" produces:"application/json"`
playList gorest.EndPoint `method:"GET" path:"/list/" output:"[]Item"`
playItem gorest.EndPoint `method:"PUT" path:"/go/{Id:int}" postdata:"Item"`
}
func(serv HelloService) PlayList() []Item{
serv.ResponseBuilder().SetResponseCode(200)
return itemStore
}
type Item struct{
Id int
FileName string
Active bool
}
var(
itemStore []Item
)
结果JSON是:
[{"Id":1,"FileName":"test :1","Active":false},{"Id":2,"FileName":"test :2","Active":false}, ... ]
但是,Mustache.js无法解析它,因为它首先需要对象ID。 小胡子想要这样的东西:
{
"repo": [{"Id":1,"FileName":"test :1","Active":false},{"Id":2,"FileName":"test
:2","Active":false}, ... ]
}
答案 0 :(得分:3)
您可能需要更改
playList gorest.EndPoint
方法:“GET”路径:“/ list /”输出:“[]项目”`
要
playList gorest.EndPoint
方法:“GET”路径:“/ list /”输出:“ItemStore”`
和
var(
itemStore []Item
)
到
type ItemStore struct {
Items []Item
}
var(
itemStore ItemStore
)
完整的工作程序将更容易调试。