在fasthttprouter中将参数定义为端点URL的参数请求实例

时间:2019-03-19 11:00:30

标签: http go server fasthttp

我正在使用golang的fasthttprouter,并按照示例操作并定义了这样的路由器:

router.GET("/customer/account/detail/:accountId", myHandler.customerAccountDetailHandler)

然后我以http://locahost:9296/customer/account/detail/2的身份致电我的服务

但是我意识到我不想让参数作为端点的一部分,我宁愿通过这样调用服务来使用普通参数:

http://locahost:9296/customer/account/detail?accountId=2&sort=1

是否可以使用fasthttprouter完成?怎么样?

预先感谢 J

2 个答案:

答案 0 :(得分:0)

应该可以从请求上下文访问查询参数。 您应该有一个接受*fasthttp.RequestCtx参数的处理程序。该RequestCtx可以访问URI和该URI上的查询参数。看起来应该像这样:

ctx.URI().QueryArgs().Peek("accountId")

您将必须更新处理程序以使用此查询参数,而不是先前使用的路由参数。同样适用于sort参数。

此外,还必须更新路由器,以将/customer/account/detail路由到更新的处理程序(即,您要从路由中删除/:accountId)。

答案 1 :(得分:0)

您的问题与此类似:
Get a request parameter key-value in fasthttp

您可以通过以下方式检索请求的参数:

<input type="button" onclick="enterScores()" value="Enter Scores">
  <input type="button" onclick="displayScores()" value="Display Scores">
  <input type="button" onclick="Average()" value="Calculate Average">

  <br><br><font face="arial" size="2">
  
  <table border="1" style="border-collapse: collapse;" id="display"></table>
	<p id="average"></p>

在这里查看我的完整回复

https://stackoverflow.com/a/57740178/9361998

文档:https://godoc.org/github.com/valyala/fasthttp#RequestCtx.FormValue