Go 語(yǔ)言最流行了兩個(gè)輕量級 Web 框架分別是 Gin 和 Echo,這兩個(gè)框架大同小異,都是插件式輕量級框架,背后都有一個(gè)開(kāi)源小生態(tài)來(lái)提供各式各樣的小插件,這兩個(gè)框架的性能也都非常好,裸測起來(lái)跑的飛快。本節我們只講 Gin 的實(shí)現原理和使用方法,Gin 起步比 Echo 要早,市場(chǎng)占有率要高一些,生態(tài)也豐富一些。
路由樹(shù)
在 Gin 框架中,路由規則被分成了最多 9 棵前綴樹(shù),每一個(gè) HTTP Method對應一棵「前綴樹(shù)」,樹(shù)的節點(diǎn)按照 URL 中的 / 符號進(jìn)行層級劃分,URL 支持 :name 形式的名稱(chēng)匹配,還支持 *subpath 形式的路徑通配符 。
每個(gè)節點(diǎn)都會(huì )掛接若干請求處理函數構成一個(gè)請求處理鏈 HandlersChain。當一個(gè)請求到來(lái)時(shí),在這棵樹(shù)上找到請求 URL 對應的節點(diǎn),拿到對應的請求處理鏈來(lái)執行就完成了請求的處理。