【Ginフレームワーク2】Gin基本ルーティング(1)
22560 ワード
目次基本ルート ルーティングパラメータ パス全パラメータ パス単一パラメータ URLで指定されたパラメータ【GET、POST要求】 を取得するURLのデフォルト値を取得するパラメータ【GET、POST要求】
概要
ルーティングはurlアドレスをカスタマイズして指定した関数を実行し、良好なルーティング定義はseoに良い効果を果たすことができます.
1.基本ルート
ginフレームワークはhttpライブラリをカプセル化し、
2.ルーティングパラメータURLパスのすべてのパラメータを取得
/を分割子とし、各パラメータは「:」をパラメータとして動的変数を表し、ルーティングに対応するパラメータに自動的にバインドされます.ルーティングルール:[:]は一致しなくてもよいことを示します.
例:http://localhost:8080/user/李四/20/北京/男将マッチング"http://localhost:8080/user/:name/:age/:address/:sex上のリンクでは、/user/:name/:age/:address/:sexを使用して、李四、20、北京、男性 URLパスの単一パラメータの取得
gin.ContextオブジェクトのParam(key)メソッドを使用して、次のように宣言されたkeyの値を取得します. URLで指定したパラメータ【GET、POST要求】を取得する
取得URLのパス値と取得パラメータが異なります
例:http://localhost:8080/login?name=張三&password=123456は、以下の方法で要求パラメータname、passwordの値を取得することができる. 指定したデフォルト値のパラメータを取得する【デフォルト値付き受信】【GET、POST要求】
ginフレームワークはもちろん、gin.Context.DefaultQuery()メソッドでは、受信したパラメータ名を指定できます.また、パラメータ値が受信されていない場合に設定されたデフォルト値は、次のように宣言されます.
概要
ルーティングはurlアドレスをカスタマイズして指定した関数を実行し、良好なルーティング定義はseoに良い効果を果たすことができます.
1.基本ルート
ginフレームワークはhttpライブラリをカプセル化し、
GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
これらのhttpリクエスト方式を提供する. router.method()
を使用してルーティングをバインド func (group *RouterGroup) METHOD(relativePath string, handlers ...HandlerFunc) IRoutes
router := gin.Default()
router.GET("/get", func(c *gin.Context) { c.JSON(200, gin.H{"message": "get "}) })
router.POST("/post", func(c *gin.Context) { c.JSON(200, gin.H{"message": "post "}) })
router.PUT("/put", func(c *gin.Context) { c.JSON(200, gin.H{"message": "put "}) })
router.DELETE("/delete", func(c *gin.Context) { c.JSON(200, gin.H{"message": "delete"}) })
router.PATCH("/patch", func(c *gin.Context) { c.JSON(200, gin.H{"message": "patch"}) })
router.HEAD("/head", func(c *gin.Context) { c.JSON(200, gin.H{"message": "head"}) })
router.OPTIONS("/options", func(c *gin.Context) { c.JSON(200, gin.H{"message": "options"}) })
router.Run(":9999")// localhost:9999
2.ルーティングパラメータ
/を分割子とし、各パラメータは「:」をパラメータとして動的変数を表し、ルーティングに対応するパラメータに自動的にバインドされます.ルーティングルール:[:]は一致しなくてもよいことを示します.
例:http://localhost:8080/user/李四/20/北京/男将マッチング"http://localhost:8080/user/:name/:age/:address/:sex上のリンクでは、/user/:name/:age/:address/:sexを使用して、李四、20、北京、男性
c.Params("key")
//http://localhost:8080/user/ /20/ /
router.GET("/user/:name/:age/:address/:sex", func(c *gin.Context) {
// URL
//"[{name } {age 20} {address } {sex }]
"
c.JSON(http.StatusOK, fmt.Sprintln(c.Params))
})
注意:ただし、/user/または/userアクセスは一致しません.http://localhost:8080/user/李四/20/北京/男性結果:"[{name } {age 20} {address } {sex }]
"
gin.ContextオブジェクトのParam(key)メソッドを使用して、次のように宣言されたkeyの値を取得します.
//http://localhost:8080/login/15949629528/123456
router.GET("/login/:name/:password", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
//{ name: "15949629528", password: "123456" }
"name": c.Param("name"),
"password": c.Param("password"),
})
})
アクセス:http://localhost:8080/login/15949629528/123456 結果:{ name: "15949629528", password: "123456" }
取得URLのパス値と取得パラメータが異なります
例:http://localhost:8080/login?name=張三&password=123456は、以下の方法で要求パラメータname、passwordの値を取得することができる.
// URL key
func (c *Context) Query(key string) string
//GET
router.GET("/login", func(c *gin.Context) {
//{ name: " ", password: "123456" }
c.JSON(http.StatusOK, gin.H{
"name": c.Query("name"),
"password": c.Query("password"),
})
})
//POST
router.POST("/login", func(c *gin.Context) {
//{"name":" ","password":"123456"}
c.JSON(http.StatusOK, gin.H{
"name": c.Query("name"),
"password": c.Query("password"),
})
})
アクセス:http://localhost:8080/login?name=張三&password=123456出力内容は以下の通り:{ name: " ", password: "123456" }
ginフレームワークはもちろん、gin.Context.DefaultQuery()メソッドでは、受信したパラメータ名を指定できます.また、パラメータ値が受信されていない場合に設定されたデフォルト値は、次のように宣言されます.
func (c *Context) DefaultQuery(key, defaultValue string) string
要求がkeyを携帯していない場合にのみ、デフォルト値が有効になります.その他の場合、デフォルト値は有効ではありません.URLのキーの値が空であっても、デフォルト値は有効になりません.取得した値は空です.なお、これは取得URLのパラメータ値//GET
router.GET("/user", func(c *gin.Context) {
//{ name: " ", password: "123456" }
c.JSON(http.StatusOK, gin.H{
"name": c.DefaultQuery("name", " "),
"password": c.DefaultQuery("password", " "),
})
})
//POST
router.POST("/user", func(c *gin.Context) {
//{"name":" ","password":" "}
c.JSON(http.StatusOK, gin.H{
"name": c.DefaultQuery("name", " "),
"password": c.DefaultQuery("password", " "),
})
})
アクセスです.http://localhost:8080/user?password= 出力内容は、{ name: " ", password: " " }