Gin 是一個(gè)用 Go (Golang) 編寫的 web 框架。它是一個(gè)類似于 martini 但擁有更好性能的 API 框架,由于 httprouter,速度提高了近 40 倍。 如果你是性能和高效的追求者,你會(huì)愛上 Gin。
Gin 是一個(gè)用 Go (Golang) 編寫的 web 框架。它是一個(gè)類似于 martini 但擁有更好性能的 API 框架,由于 httprouter,速度提高了近 40 倍。如果你是性能和高效的追求者,你會(huì)愛上 Gin。
在本節(jié)中,我們將介紹 Gin 是什么,它解決了哪些問(wèn)題,以及它如何幫助你的項(xiàng)目。
或者,如果你已經(jīng)準(zhǔn)備在項(xiàng)目中使用 Gin,請(qǐng)?jiān)L問(wèn)快速入門。
基于 Radix 樹的路由,小內(nèi)存占用。沒有反射??深A(yù)測(cè)的 API 性能。
傳入的 HTTP 請(qǐng)求可以由一系列中間件和最終操作來(lái)處理。 例如:Logger,Authorization,GZIP,最終操作 DB。
Gin 可以 catch 一個(gè)發(fā)生在 HTTP 請(qǐng)求中的 panic 并 recover 它。這樣,你的服務(wù)器將始終可用。例如,你可以向 Sentry 報(bào)告這個(gè) panic!
Gin 可以解析并驗(yàn)證請(qǐng)求的 JSON,例如檢查所需值的存在。
更好地組織路由。是否需要授權(quán),不同的 API 版本…… 此外,這些組可以無(wú)限制地嵌套而不會(huì)降低性能。
Gin 提供了一種方便的方法來(lái)收集 HTTP 請(qǐng)求期間發(fā)生的所有錯(cuò)誤。最終,中間件可以將它們寫入日志文件,數(shù)據(jù)庫(kù)并通過(guò)網(wǎng)絡(luò)發(fā)送。
Gin 為 JSON,XML 和 HTML 渲染提供了易于使用的 API。
新建一個(gè)中間件非常簡(jiǎn)單,去查看示例代碼吧。