如何在林EndPoint语法中提供输出数据的JSON对象ID?

时间:2012-12-17 12:11:57

标签: json go mustache

我是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}, ... ]
}

1 个答案:

答案 0 :(得分:3)

您可能需要更改

playList gorest.EndPoint方法:“GET”路径:“/ list /”输出:“[]项目”`

playList gorest.EndPoint方法:“GET”路径:“/ list /”输出:“ItemStore”`

var(
    itemStore []Item
)

type ItemStore struct {
    Items []Item
}

var(
    itemStore ItemStore
)

完整的工作程序将更容易调试。