簡介
Gin 是一個基于 Go 語言編寫的 Web 框架,與 martini 框架類似,但擁有更好的性能,借助高性能的 httprouter,速度提升了近 40 倍。如果你追求高性能和開發效率,你會愛上 Gin 框架。
開始介紹 Gin 框架的使用之前,我們先來簡單看一下它的特性和優勢。
功能特性
快速
基于 Radix 樹(一種更節省空間的 Trie 樹結構)的路由,占用內存更少;
沒有反射;
可預測的 API 性能。
內置路由器
開箱即用的路由器功能,不需要做任何配置即可使用。
支持中間件
傳入的 HTTP 請求可以經由一系列中間件和最終操作來處理,例如 Logger、Authorization、GZIP 以及最終的 DB 操作。
Crash 處理
Gin 框架可以捕獲一個發生在 HTTP 請求中的 panic 并 recover 它,從而保證服務器始終可用。此外,你還可以向 Sentry 報告這個 panic!
JSON 驗證
Gin 框架可以解析并驗證 JSON 格式的請求數據,例如檢查某個必須值是否存在。
路由群組
支持通過路由群組來更好地組織路由,例如是否需要授權、設置 API 的版本等,此外,這些群組可以無限制地嵌套而不會降低性能。
API 凍結
支持 API 凍結,新版本的發布不會破壞已有的舊代碼。
錯誤管理
Gin 框架提供了一種方便的機制來收集 HTTP 請求期間發生的所有錯誤,并且最終通過中間件將它們寫入日志文件、數據庫或者通過網絡發送到其它系統。
內置渲染
Gin 框架提供了簡單易上手的 API 來返回 JSON、XML 或者 HTML 格式響應。
可擴展性
我們將會在后續示例代碼中看到 Gin 框架非常容易擴展。
易于測試
Gin 框架提供了完整的單元測試套件。
https://github.com/MasterJoyHunan/go-admin-cms