передача данных между middlewares
всем привет.
у меня есть несколько мидлваре в проекте, они запускаются одна за другой при запросе определенного урла перед тем как запустить финальный хэндлфанк
Я столкнулся с тем что данные из первоначального запроса, теряются при проходе через мидлварь. например данные заполненных форм.
сейчас, чтобы донести данные первоначального запроса до финального хэндфанка, я в первой мидлвари данные запроса сохраняю и дальше передаю в следующую мидлварь в качестве хедера. есть ли более практичный способ донести данные от первоначального запроса до финального хэндлфанка? спасибо.
Ответы (1 шт):
Если у вас http/net, то примерно так:
Первый посредник (выполняется первым)
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
ctx = context.WithValue(ctx,"YOU_KEY", "YOU_VALUE")
next.ServeHTTP(w, r.WithContext(ctx))
}
Второй посредник (выполняется вторым)
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
v := r.Context().Value("YOU_KEY")
// some logic
}