Golang - Gin #3: 中間件的魔力

閱讀時間約 2 分鐘
來源: Gin Logo + 自行用 Canva 製作

來源: Gin Logo + 自行用 Canva 製作

中間件的魔力:在Gin中應用中間件

嗨嗨,各位碼農們!我們都知道,有些“魔法”在開發過程中是非常有用的,今天我要和大家聊聊的就是 Gin 中的這種“魔法”:中間件 (Middleware)!

Gin 的中間件允許我們在請求的生命週期中插入自己的邏輯,這對於日誌、驗證、安全檢查等都非常有用。今天,我們將看看如何運用這些魔法來優化我們的應用。


📜 什麼是中間件?

中間件其實就是一些函數,它們會在你的路由處理器之前或之後執行。這意味著你可以在處理請求之前或之後做一些事情,比如日誌記錄、錯誤處理等。


🎉 使用中間件進行日誌記錄

你想記錄每個請求的資訊嗎?沒問題!
func LoggerMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
startTime := time.Now()

// 執行其他中間件或路由處理器
c.Next()

endTime := time.Now()
log.Printf("Request processed in %s", endTime.Sub(startTime))
}
}

r := gin.Default()
r.Use(LoggerMiddleware())


🔒 使用中間件進行驗證

要確保某些路由是受保護的嗎?只需幾行代碼!
func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
token := c.GetHeader("Authorization")
if token != "SomeSecretToken" {
c.AbortWithStatusJSON(401, gin.H{"error": "Unauthorized"})
return
}
c.Next()
}
}

r := gin.Default()
r.Use(AuthMiddleware())


🛡️ 安全性中間件

想加強你的API的安全性?Gin有你需要的!
r := gin.Default()
r.Use(gin.Recovery(), gin.Logger())


結論

中間件在 Gin 中是一個超強大的工具,讓我們能夠輕鬆地加入一些額外的功能和邏輯。學會如何使用它,你的Gin應用將更上一層樓!下次再分享其他有趣的主題,敬請期待!👋



感謝

謝謝大家看完這篇,如果您喜歡我的文章,歡迎 小額贊助我 ^^
30會員
193內容數
歡迎來到【代碼的詩情】:探索程式語言之美 系列,這是一場優雅的程式之旅,透過詩歌的抒發,尋找不同程式語言的美感和精髓。 在這個系列中,我們將透過文字的韻律,深入探索多種程式語言的核心概念和語法,以及它們獨特的應用和技巧。每一篇詩歌都是一個故事,每一段代碼都是一句詩句,讓代碼的旋律和詩情在其中相互交織。
留言0
查看全部
發表第一個留言支持創作者!
KH Huang的沙龍 的其他內容
Golang - Gin #1: 初探Gin框架
閱讀時間約 2 分鐘
你可能也想看
Package:Golang 專案的組織策略👨‍💻簡介 套件(Package)在Golang中扮演著組織和管理程式碼的重要角色。 package就像工具箱一樣,裡面裝滿各種不同的工具,每個工具都有特定的功能。這些工具能夠幫助你完成不同的任務,從修理家具到蓋小屋,樣樣都行。
Thumbnail
avatar
wang alan
2023-09-01
探索 Golang 中的結構體:如何有效地組織複雜資料👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
Thumbnail
avatar
wang alan
2023-08-30
🚀 Golang 函數:從入門到精通👨‍💻簡介 在 Go 語言中,函數(Function)是一個強大且重要的概念,就像食譜一樣,告訴你應該如何處理食材,最後得到一道美味的料理。經過哪些程序讓程式更有組織性和可讀性。函數可幫助你將程式碼區塊組織成可重複使用的元件,進而執行特定的任務。
Thumbnail
avatar
wang alan
2023-08-29
Golang 的資料型別一覽👨‍💻簡介 Go 語言有各種資料型別,分為基本型別和複合型別。基本型別包括: 整數、浮點數、布林值、字串 複合型別包括: 陣列、片段、結構、函式、對映、通道、介面 等。 整數型別 整數型別有許多種,像是 int8、int16、int32、int64。我們可以依據實際需求選擇。
Thumbnail
avatar
wang alan
2023-08-17
韓國SONO CALM GOYANG HOTEL跟團住在號稱5星級飯店,SONO CALM GOYANG HOTEL 出發前在網路上找不到相關資料,google附近的地圖失真,於是來發一篇文 沒拍房間內部,房間還蠻大的,兩張單人床中間兩旁都有空間可以走動,開放式衣架,備品有小瓶沐浴乳、洗髮精、潤髮乳,都是濃濃的薄荷味,如果不能接受的話,最好自
Thumbnail
avatar
lunar
2023-07-13
開箱 - Gini Float 浮落櫻花保濕精華 | 本間G點神花花花開箱到現在,有在追的花粉們一定常常看到這瓶浮落櫻花,今天就來開箱花花愛死、用到現在2022三月第六罐的浮落櫻花保濕精華! 先來個結論: 有乾澀煩惱的女生,浮落是最佳解! 乾澀不是病,乾起來會啜泣 男生別再說女生陰晴不定了!!! 溫和的體感 產後乾澀必用! 洗澡後、隨時乾澀都可用! 愛愛也好用
Thumbnail
avatar
本間G點 - 神花
2022-03-14
GIN and TONIC S・T・Y・L・EGin & Tonic是一間酒吧的門面。簡單的材料,更容易映照出調酒師的心思,顯現每間店的味道。 調酒師為了這一杯酒苦思冥想,摸索何謂自己的味道。或許Gin & Tonic是一杯令眾人永遠都在追尋其理想模樣的雞尾酒。本專欄將介紹頂尖調酒師所製作的Gin & Tonic,並深入了解每個人的風格。
Thumbnail
avatar
魏羅妮
2021-02-06
建立 Golang http web server建議先看過Golang 入門這篇再閱讀這篇! 使用Go官方提供的net/http library就能建立http web伺服器囉!
Thumbnail
avatar
Vic Lin
2019-11-16
Golang 入門Golang 入門
Thumbnail
avatar
Vic Lin
2019-11-09
Golang RegExp Notes遙想當年初探 Regular Expression,腦袋紮紮實實地被凌虐了一番,同時十分敬佩把正規表示式寫的簡潔有力又精確無誤的神人。最近學校在上編譯器課程,估計近期內便會接觸到不少 RegExp 的技巧,於是就來寫篇筆記吧~
Thumbnail
avatar
Rain Wu
2019-03-17