gin 是乙個用 go 語言編寫的 web 微框架,封裝比較優雅,api 友好,具有快速靈活,容錯方便等特點。它是乙個類似於 martini 但擁有更好效能的 api 框架,由於使用了 httpprouter,速度提高了近 40 倍。如果你是效能和高效的追求者,你會愛上 gin。
go 世界裡最流行的 web 框架,github 上有 46k+star。基於 httprouter 開發的 web 框架。中文文件齊全,簡單易用的輕量級框架。
}) // 啟動http服務,預設在0.0.0.0:8080啟動服務
r.run()
}
gin.setmode(gin.releasemode)
檢視gin原始碼,可發現gin框架提供了下列三種模式。
const (
// debugmode indicates gin mode is debug.
debugmode = "debug"
// releasemode indicates gin mode is release.
releasemode = "release"
// testmode indicates gin mode is test.
testmode = "test"
)
我們每次啟動gin框架,如果不設定以下gin模式
gin.setmode(gin.releasemode)
程式則會輸出一段提示
[warning] running in "debug" mode. switch to "release" mode in production.
- using env: export gin_mode=release
- using code: gin.setmode(gin.releasemode)
所以,現在我們就可以明白了,這三種mode分別對應了不同的場景。在我們開發除錯過程中,使用debug模式就可以了。在上線的時候,一定要選擇release模式。而test可以用在測試場景中。
//建立乙個路由引擎
router := gin.new()
// 建立乙個預設的路由引擎
router := gin.default()
gin.default() 和 gin.new() 的區別在於 gin.default() 也使用 gin.new() 建立engine例項,但是會預設使用 logger 和 recovery 中介軟體。
chain := router.group("/api/admin")
我們把乙個模組相關的方法都寫在乙個路由下。便於管理和查詢相關的**。
gin框架正好為我們提供了這個方法。
**舉例如下
//v1組路由
v1:=router.group("/v1")
//v2組路由
v2:=router.group("/v2")
// 新增banner
chain.post("/banner/add", handler.addbanner)
當客戶端以post方法請求.../banner/add 路徑時,會執行後面的函式
func addbanner(ctx *gin.context)
web伺服器收到客戶端的http請求,會針對每一次請求,分別建立乙個用於代表請求的request物件、和代表響應的response物件。
故:當需要獲取客戶機提交過來的資料時,找request物件就行了。當需要向客戶機輸出資料,找response物件。
router.run(config.conf.console.port)
預設在0.0.0.0:8080啟動服務
從零開發區塊鏈應用 七 gin框架引數獲取
目錄query指的是url 後面攜帶的引數,例如user info?username 張三 password 123。獲取請求的query引數的方法如下 username ctx.defaultquery username 杰哥的技術雜貨鋪 password ctx.query password 完...
區塊鏈專案開發區塊鏈的價值
傳統的資料安全,是靠中心化的資料中心實現的,這種中心化資料安全是使用權威性來得到認可和信任,也就是資料可信任是建立在大家所認可的權威性基礎之上的,但是這種資料模式對於信任的展示是個雙刃劍,如果被質疑資料安全問題,中心化的資料中心其實無法證明資料的可信任性,因為資料是被中心所控制的,乙個資料管理員可以...
區塊鏈開發公司多用途開發 區塊鏈商城怎麼樣
2018年是區塊鏈技術發展的一年,這一年湧起大大小小的區塊鏈開發公司,是什麼使他們如此痴迷冒著風險去與這麼競爭對手去競爭呢?區塊鏈技術的魅力如此之大,其中又有什麼奧秘呢?2009年初次出現比t幣時人們不以為然 近十年後的今天,比t幣的底層技術區塊鏈技術將改變世界,區塊鏈如今的應用突破了侷限,應用在我...