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.Context
のGetPostForm
メソッドでJSONを読み込めないことが原因でした。
対策
body情報を渡す際のContent-Type
をx-www-form-urlencoded
にする
原因
Requestのbodyから情報を取得してくるgin.Context.GetPostForm
に対して、POSTメソッドでContent-Type:applicataion/json
のデータを渡していた。
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")
}
使用している教材はこちら↓
おわりに
最後までお読みいただきありがとうございました。
アドバイス・応援コメント等いただけますと幸いです。