1、想要使用中介軟體必須是乙個 func(c *gin.context)型別的函式,底層實現了handefunc方法
2、中介軟體是請求和響應的分界點,無論怎麼變換給前端響應的那個動作永遠最後執行
2、use()⽅法的作用是,將中介軟體函式存放到乙個map裡用於後續的執行,只會給c上下⽂新增⼀個屬性,並賦值。後⾯的路由處理器,可以根據被中介軟體裝飾後提取其值。
1、執行的順序是按照註冊的順序進行執行
2、雖然名為全域性中介軟體,只要註冊中介軟體的過程之前設定的路由,將不會受註冊的中介軟體所影響。只有註冊了中介軟體後面的路由函式才會被中介軟體裝飾。
3、設定全域性中介軟體
r.user(m1,m2)
4、區域性中介軟體
單個路由註冊:
r.get("/index", m1, indexhandler, m1)
r.get("/home", m2, homehandler)
路由組中介軟體:只對組內的路由生效,組內也可以設定組內的全域性中介軟體
1、shopgroup := r.group("/shop", m1, m2))}
2、shopgroup := r.group("/shop")
shopgroup.use(m1, m2))}
3、shopgroup := r.group("/shop"))}
3、c.next() 方法的作用是解決⼀個請求和⼀個響應經過我們的中介軟體,
1、當遇到c.next()函式時 它取出所有的沒被執行過的註冊的函式都執⾏⼀遍,然後再回到本函式中,有點類似遞迴函式
2、可以用在token校驗,把使用者id存起來共給功能性函式使用
4、c.abort()方法的作用 終止呼叫整個鏈條
gin系列 中介軟體
gin框架允許開發者在處理請求的過程中,加入使用者自己的鉤子 hook 函式。這個鉤子函式就叫中介軟體,中介軟體適合處理一些公共的業務邏輯,比如登入認證 許可權校驗 資料分頁 記錄日誌 耗時統計等 定義中介軟體 gin中的中介軟體必須是乙個gin.handlerfunc型別 入門案例 定義乙個中介軟...
Gin 路由以及中介軟體
分組路由使 邏輯更加模組化,同時也易於定義中介軟體的使用範圍 v1 router.group v1 v1.get login func c gin.context v2 router.group v2 v2.get login func c gin.context 先定義乙個中介軟體函式 func ...
gin框架中介軟體詳解
gin框架涉及中介軟體相關有4個常用的方法,它們分別是c.next c.abort c.set c.get gin框架中的中介軟體設計很巧妙,我們可以首先從我們最常用的r gin.default 的default函式開始看,它內部構造乙個新的engine之後就通過use 函式註冊了logger中介軟...