2

我正在用 Go 编写一个 Web 服务,我想要这样的 url:

http://example.com/WEB/service.wfs?param1=2¶m2=test .....

我正在使用 GoREST,我的端点 url 是:

method:"GET" path:"/WEB/service.wfs?{param:string}" output:"string"

我的问题是它永远不会返回“参数”,但如果我使用端点它会返回:

method:"GET" path:"/WEB/service.wfs/{param:string}" output:"string"

有没有办法处理“?” ?

4

2 回答 2

1

您可以在 gorest 中执行此操作,尽管它不如 gorest 的首选机制好。

不要在端点定义中包含查询参数

method:"GET" path:"/WEB/service.wfs" output:"string"

相反,您可以从注册的端点获取上下文并使用类似的方法获取查询参数

func (serv MyService) HelloWorld() (result string) {
    r := serv.Context.Request()
    u, _ := url.Parse(r.URL.String())
    q := u.Query()
    result = "Buono estente " + q["hi"][0]
    return
}
于 2014-10-22T09:27:51.773 回答
0

我查看了您正在使用的 GoREST 包,但看不到任何这样做的方法。

我一直使用 gorillatoolkit pat 包。

大猩猩工具包

有一个例子说明你想在一半左右做些什么。

category := req.URL.Query().Get(":category")

这样就可以通过key获取请求URL上的查询参数。

希望这可以帮助。

于 2013-12-03T16:39:44.740 回答