今回はGinのパラメータを取得方法について書いていきます。
取得するパラメータの種類として、パスの中にあるIDやクエリーストリング、フォームのパラメータについてここでは解説しています。
パスにあるパラメータの取得
URIの中で指定したIDなどのパラメータを取得します。
取得するには、Paramを使って取得します。
router.GET("/:id", Hoge)
func Hoge(c *gin.Context) {
id := c.Param("id")
}
router.GETはルーティングになります。
ルーティングで指定している/:idに入る値を取得するために、Paramを利用します。
コンテキストの中にParamの関数があるので、Paramを呼び出しidを取得します。
そうすることで、URIの中に含まれたパラメータを取得することができます。
QueryStringの取得
クエリーストリングによる取得を行います。
クエリストーリングとは何なのか?
例えば、http[s]://[ホスト]/hoge?test=aaaにある?以降で指定されたパラメータがクエリーストリングになります。
Ginでクエリストリングを取得するには、コンテキストにあるQueryを使って取得します。
router.GET("/hoge", Hoge)
func Hoge(c *gin.Context) {
id := c.Query("test")
}
ほとんどパスにあるパラメータの取得方法と同じになるので説明は省きます。
ひとつだけ説明するとDefaultQueryってのもあり、クエリーストリングが無ければデフォルトで値を設定することができます。
フォームパラメータの取得
HTML側でPOST送信されたデータをPostFormを使って取得します。
Queryと同じようにDefaultPostFormもあります。
router.POST("/hoge", Hoge)
func Hoge(c *gin.Context) {
id := c.PostForm("test")
}
まとめ
URIに含まれるパラメータの取得やクエリーストリングとフォームデータのパラメータの取得方法を説明しました。
送信されてきた送信メソッドによって取得側でも、送信されてきたメソッドに応じて対応しなければなりません。
データの取得がしっかりできていない場合は、送信されたデータと受信する側のメソッドが正しいかをまずは確認しましょう。
ちなみに、queryとpostデータを両方取得することも可能です。
ほかにもファイルの取得もあるけど、これは実装するときに詳しく書いて行きたいます。
-
Golang Ginを使ったユニットテスト
GolangのGinフレームワークで、ユニットテストを使ったら結構はまったのでメモします。 Gin Context GinのContextを関数に渡したい時ってあると思う。 それでGinのテストソースを調査していたら、helpers_tes ...続きを見る