首頁 > 後端開發 > Golang > 如何在 Go 中有效地將資料從中介軟體傳輸到處理程序?

如何在 Go 中有效地將資料從中介軟體傳輸到處理程序?

Linda Hamilton
發布: 2024-11-09 05:46:02
原創
975 人瀏覽過

How to Effectively Transfer Data from Middleware to Handlers in Go?

從中間件到處理程序的資料傳輸

在現代 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板