Go プログラミング

Golang Ginを使ったパラメータの取得

2017年2月10日

パラメータ

今回は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データを両方取得することも可能です。

ほかにもファイルの取得もあるけど、これは実装するときに詳しく書いて行きたいます。

Gin ユニットテスト
Golang Ginを使ったユニットテスト
GolangのGinフレームワークで、ユニットテストを使ったら結構はまったのでメモします。 Gin Context GinのContextを関数に渡したい時ってあると思う。 それでGinのテストソースを調査していたら、helpers_tes ...

続きを見る

-Go, プログラミング
-