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