Определите параметры как запрос параметра вместо URL-адреса конечной точки в fasthttprouter - PullRequest
1 голос
/ 19 марта 2019

Я использую fasthttprouter от golang, следовал примерам и определил роутер следующим образом:

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

1 Ответ

0 голосов
/ 19 марта 2019

Параметр запроса должен быть доступен из контекста запроса. У вас должен быть обработчик, который принимает аргумент *fasthttp.RequestCtx. Этот RequestCtx может получить доступ к URI и параметрам запроса по этому URI. Это должно выглядеть примерно так:

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

Вам придется обновить свой обработчик, чтобы использовать этот параметр запроса вместо параметра маршрута, который вы использовали ранее. То же самое относится и к параметру sort.

Кроме того, ваш маршрутизатор должен быть обновлен для маршрутизации /customer/account/detail к вашему обновленному обработчику (т.е. вы захотите удалить /:accountId из вашего маршрута).

...