介紹

Gin 是一個使用 Go (Golang) 寫的 Web 框架。它提供類似 Martini 的 API,但擁有更好的效能,感謝 httprouter,速度快上了 40 倍。如果你需要效能和高生產力,你將會愛上 Gin。

在這個章節當中,我們會介紹什麼是 Gin,它解決了什麼問題,還有他如何幫助你的專案。

或者,如果你已經準備好要在你的專案中使用 Gin,請前往 快速入門

特色

快速

以 Radix tree 為基礎的路由,記憶體使用量小。沒有使用 reflection。可預測的 API 效能。

支援 Middleware

傳入的請求可以由一系列的 Middleware 和最終行為來處理。例如:Logger、Authorization、GZIP,最後送訊息到資料庫。

Crash-free

Gin 可以攔截發生在 HTTP 請求期間的 panic 並回復它。這樣的話,伺服器將永遠是可用狀態。舉例來說,它可以選擇回報 panic 給 Sentry。

JSON 驗證

Gin 可以剖析和驗證請求裡的 JSON,例如檢查必要值。

路由群組

更好地組織你的路由。需不需要授權或不同的 API 版本。此外,這些群組可以無限制地巢狀嵌套而不會降低效能。

錯誤管理

Gin 提供了一種方便的方法來收集 HTTP 請求期間發生的所有錯誤。 最後, Middleware 可以將它們寫入日誌檔案、寫入資料庫,並透過網路傳送。

內建渲染

Gin 提供易使用的 API 來渲染 JSON、XML 和 HTML。

可擴展性

建立新的 Middleware 很簡單,直接查看範例程式碼即可。