從中間件到處理程序的資料傳輸
在現代 Web 開發中,中間件和處理程序經常協作處理請求。為了避免重複程式碼,有效地將資料從中間件傳輸到處理程序至關重要。
考慮中間件攔截和準備資料的場景,例如從請求正文解析 JWT。與處理程序共用此解析資料可以消除不必要的重複。
使用 Gorilla 上下文包
如果您正在使用 Gorilla 工具包,請利用其上下文包。這允許您在不修改方法簽名的情況下設定和檢索請求上下文中的資料。
// Middleware http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Middleware operations token := jwtParser(r) context.Set(r, "token", token) next.ServeHTTP(w, r) }) // Handler http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := context.Get(r, "token") })
注意: Gorilla 上下文套件現在處於維護模式,建議使用Go 1.7 中引入的原生 Go context.Context 功能。
以上是如何在 Go 中有效地將資料從中介軟體傳輸到處理程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!