如何从goREST POST端点返回消息?

时间:2014-04-08 16:41:46

标签: rest go

我正在使用类似于以下代码的端点

type TestService struct {
    gorest.RestService `root:"/test/"`
    testPost    gorest.EndPoint `method:"POST" path:"/testPost/" postdata:"map[string]string"`
}

我获取并处理发布的数据,并希望将有效负载返回给调用客户端,即成功/错误和消息。

我无法从文档中了解如何实现此目的,附加output标记并根据GET端点从函数返回任何内容失败,并出现以下错误;

  

参数列表不匹配。找不到匹配的方法   EndPoint:[testPost],输入:[POST]。期待:#func(serv   DocumentService)TestPost(PostData map [string] string)#没有返回   参数。

是否可以将有效负载返回给客户端?如果不能,我可以在成功/失败时重定向到另一个终点吗?

1 个答案:

答案 0 :(得分:2)

所以我找到了一种方法,以防任何人遇到类似的问题。

似乎你可以直接使用ResponseBuilder的实例编写,所以我创建了一个新的响应构建器,将内容类型设置为json并写出我的响应!

func(serv DocumentService) TestPost(PostData map[string]string){
    fmt.Printf("%+v", PostData)
    rb := serv.ResponseBuilder()
    rb.AddHeader("Content-Type", "application/json")
    rb.Write([]byte("{type:'info', msg:'Success!'}"))
}

同时通过不同的方法提供输出,例如;

serv.ResponseBuilder().Created("http://localhost:8787/orders-service/items/"+string(i.Id))

我在http://code.google.com/p/gorest/找到了