從零開發區塊鏈應用 七 gin框架引數獲取

2022-09-19 15:06:13 字數 3468 閱讀 2216

目錄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幣的底層技術區塊鏈技術將改變世界,區塊鏈如今的應用突破了侷限,應用在我...