У меня есть API-шлюз и микро сервисы пользователя. Когда запрос приходит к API-шлюзу, мне нужно добавить некоторые значения до Rediret()
его в службу пользователя.
func main(){
http.HandleFunc("/login", userLogin)
}
func userLogin(res http.ResponseWriter, req *http.Request) {
uuid := generateUUID()
// How to add UID to request?
http.Redirect(res, req, userservice, http.StatusSeeOther)
}
Для этого я использовал метод, описанный здесь .
form,_ := url.ParseQuery(req.URL.RawQuery)
form.Add("uid", "far")
req.URL.RawQuery = form.Encode()
Это всего лишь go и остановка на маршруте входа в систему обслуживания пользователей.
Я также пытался использовать: req.Form.Set("uid","foo")
Это дает pani c.
http: pani c, обслуживающее 127.0.0.1:55076 : назначение записи в nil map
Служба My User:
func main(){
http.HandleFunc("/login", UserLogin)
}
func UserLogin(res http.ResponseWriter, req *http.Request) {
req.ParseForm()
requestID := req.FormValue("uid")
userID := req.FormValue("userid")
if userID =="sachith"{
sendRequest(requestID)
http.Redirect(res, req, "http://localhost:7070/home", http.StatusSeeOther)
}
Есть ли способ добавить значения в запрос, который мы получаем для маршрута, и перенаправить его в другую службу