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