LoginSignup
0
0

More than 1 year has passed since last update.

【#45 エンジニア転職学習】GinTutorialのWebApp改造 GetPostFormについて

Posted at

Fomr# はじめに
富山県に住んでいるChikaといいます。
毎日投稿を目標に、バックエンドエンジニア転職に向けた学習内容をアウトプットします。

GoのフレームワークであるGinを中心に、
webアプリ開発学習をしていきます。

バックエンドエンジニアになるまでの学習内容は以前投稿した以下の記事を基にしています。

本日の学習内容

GinのTutorialで作成したAPIを改造して、簡素なWebアプリを作成しようと思います。
昨日POSTできなかった原因が分かりましたので、その内容をまとめます。

  • GinのGetPostFormについて ←Topics!!

GinのGetPostFormについて

昨日投稿したコード
https://qiita.com/Chika110/items/e65f1cddac4fe6976ee6
のPOSTやPUT実行時、こちら側で設定したカラムのレコード値がMySQL側に渡っていませんでした。
結論から言うと、gin.ContextGetPostFormメソッドでJSONを読み込めないことが原因でした。

対策

body情報を渡す際のContent-Typex-www-form-urlencodedにする

原因

Requestのbodyから情報を取得してくるgin.Context.GetPostFormに対して、POSTメソッドでContent-Type:applicataion/jsonのデータを渡していた。

webserver.go
func (h *AlbumHandler) PostAlbums(c *gin.Context) {
	title, _ := c.GetPostForm("title")
	artist, _ := c.GetPostForm("artist")
	price, _ := c.GetPostForm("price")
	floatprice, _ := strconv.ParseFloat(price, 64)
	h.Db.Create(&models.Album{Title: title, Artist: artist, Price: floatprice})

	c.Redirect(http.StatusMovedPermanently, "/albums")
}
使用している教材はこちら↓

おわりに

最後までお読みいただきありがとうございました。
アドバイス・応援コメント等いただけますと幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0