目錄query指的是url ? 後面攜帶的引數,例如user/info?username=張三&password=123。獲取請求的query引數的方法如下:
username := ctx.defaultquery("username", "杰哥的技術雜貨鋪")
password := ctx.query("password")
完整示例如下瀏覽器輸入為:
張三&password=123456
服務端返回為:
後端處理邏輯如下:
}) // 啟動http服務,預設在8080埠啟動服務,也可以設定為其他埠如8000
r.run(":8000")
}
注:一般使用query方法當前端請求的資料通過form表單提交時,例如向/user/info傳送乙個post請求,獲取請求資料的方式如下:
完整示例如下
後端處理邏輯如下:
}) // 啟動http服務,預設在8080埠啟動服務,也可以設定為其他埠如8000
r.run(":8000")
}
注:一般使用postform方法當前端請求的資料通過json提交時,例如向/user/info傳送乙個post請求,則獲取請求引數的方式如下:
// 判斷json請求資料結構與定義的結構體有沒有繫結成功
if err != nil )
} else )
} })
// 啟動http服務,預設在8080埠啟動服務,也可以設定為其他埠如8000
r.run(":8080")
}請求的引數通過url路徑傳遞,例如/user/info/張三/123456。獲取請求url路徑中的引數的方式如下。
127.0.0.1:8080/user/info/張三/123456
package main
}) // 啟動http服務,預設在8080埠啟動服務,也可以設定為其他埠如8000
r.run(":8080")
}
注意如下請求路由定義方式是不合法的,如果想要定義兩個類似的請求路由,可以加入版本號進行區分,如/user/v1/info/——>/user/v2/info/,版本號從v1到v2。
錯誤寫法:
// get:請求方式; /hello:請求的路徑
r.get("/user/info/:username/:password", func(c *gin.context) )
r.get("/user/info/:username/:password", func(c *gin.context) )
正確寫法:
r.get("/user/v1/info/:username/:password", func(ctx *gin.context) )
}) r.get("/user/v2/info/:username/:address", func(ctx *gin.context) )
})
為了能夠更方便的獲取請求相關引數,提高開發效率,我們可以基於請求的content-type識別請求資料型別並利用反射機制自動提取請求中querystring、form表單、json、xml等引數到結構體中。 下面的示例**演示了.shouldbind()強大的功能,它能夠基於請求自動提取json、form表單和querystring型別的資料,並把值繫結到指定的結構體物件。
// 繫結form表單示例 (user=張三&password=123456)
r.post("/loginform", func(ctx *gin.context)
// shouldbind()會根據請求的content-type自行選擇繫結器
if err := ctx.shouldbind(&login); err == nil )
} else )
} })
// 繫結querystring示例 (/loginquery?user=張三&password=123456)
r.get("/loginquery", func(ctx *gin.context)
// shouldbind()會根據請求的content-type自行選擇繫結器
if err := ctx.shouldbind(&login); err == nil )
} else )
} })
// 啟動http服務,預設在8080埠啟動服務,也可以設定為其他埠如8000
r.run(":8080")
}shouldbind會按照下面的順序解析請求中的資料完成繫結:
至此,我們學會了gin框架如何獲取請求引數的方式。
從零開發區塊鏈應用 六 gin框架使用
gin 是乙個用 go 語言編寫的 web 微框架,封裝比較優雅,api 友好,具有快速靈活,容錯方便等特點。它是乙個類似於 martini 但擁有更好效能的 api 框架,由於使用了 httpprouter,速度提高了近 40 倍。如果你是效能和高效的追求者,你會愛上 gin。go 世界裡最流行的...
區塊鏈專案開發區塊鏈的價值
傳統的資料安全,是靠中心化的資料中心實現的,這種中心化資料安全是使用權威性來得到認可和信任,也就是資料可信任是建立在大家所認可的權威性基礎之上的,但是這種資料模式對於信任的展示是個雙刃劍,如果被質疑資料安全問題,中心化的資料中心其實無法證明資料的可信任性,因為資料是被中心所控制的,乙個資料管理員可以...
區塊鏈開發公司多用途開發 區塊鏈商城怎麼樣
2018年是區塊鏈技術發展的一年,這一年湧起大大小小的區塊鏈開發公司,是什麼使他們如此痴迷冒著風險去與這麼競爭對手去競爭呢?區塊鏈技術的魅力如此之大,其中又有什麼奧秘呢?2009年初次出現比t幣時人們不以為然 近十年後的今天,比t幣的底層技術區塊鏈技術將改變世界,區塊鏈如今的應用突破了侷限,應用在我...