gin系列 中介軟體

2022-01-25 11:57:37 字數 4462 閱讀 5610

gin框架允許開發者在處理請求的過程中,加入使用者自己的鉤子(hook)函式。這個鉤子函式就叫中介軟體,中介軟體適合處理一些公共的業務邏輯,比如登入認證、許可權校驗、資料分頁、記錄日誌、耗時統計等

定義中介軟體

gin中的中介軟體必須是乙個gin.handlerfunc型別

入門案例

}//定義乙個中介軟體

}//定義乙個中介軟體:統計耗時

func m1(c *gin.context)

func main() )

//})

r.run(":9090")

}註冊中介軟體

在gin框架中,可以為每個路由新增任意數量的中介軟體。

為全域性路由註冊

}//定義乙個中介軟體:統計耗時

}//定義乙個中介軟體:統計耗時

func m1(c *gin.context)

func m2(c *gin.context)

//func authmiddleware(c *gin.context)

func authmiddleware(docheck bool)gin.handlerfunc else }

}func main() )

}) r.get("/user", func(c *gin.context) )

}) r.run(":9090")

}為某個路由單獨註冊

)//定義乙個中介軟體:統計耗時

}//定義乙個中介軟體:統計耗時

}為路由組註冊中介軟體

func main() )

})} //路由組註冊中介軟體方法2:

xx2group := r.group("/xx")

xx2group.use(authmiddleware(true))

) })

} r.run(":9090")

}

跨中介軟體訪問值
package main

}//定義乙個中介軟體:統計耗時

gin.default()預設使用了logger和recovery中介軟體,其中:logger中介軟體將日誌寫入gin.defaultwriter,即使配置了gin_mode=release。recovery中介軟體會recover任何panic。如果有panic的話,會寫入500響應碼。如果不想使用上面兩個預設的中介軟體,可以使用gin.new()新建乙個沒有任何預設中介軟體的路由。

package main

}//定義乙個中介軟體:統計耗時

gin中介軟體中使用goroutine

當在中介軟體或handler中啟動新的goroutine時,不能使用原始的上下文(c *gin.context),必須使用其唯讀副本(c.copy())。

//定義乙個中介軟體:統計耗時

func m1(c *gin.context)

gin中介軟體講解

1 想要使用中介軟體必須是乙個 func c gin.context 型別的函式,底層實現了handefunc方法 2 中介軟體是請求和響應的分界點,無論怎麼變換給前端響應的那個動作永遠最後執行 2 use 法的作用是,將中介軟體函式存放到乙個map裡用於後續的執行,只會給c上下 新增 個屬性,並賦...

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中介軟...