はじめに
富山県に住んでいるChikaといいます。
毎日投稿を目標に、バックエンドエンジニア転職に向けた学習内容をアウトプットします。
7月いっぱいまでGoのフレームワークであるGinについて、
学習をしていきます。
バックエンドエンジニアになるまでの学習内容は以前投稿した以下の記事を基にしています。
本日の学習内容
GinのTutorialで作成したAPIを改造して、簡素なWebアプリを作成しようと思います。
本日はAPIにメソッドを追加しました。
- PUT/DELETEメソッド追加 ←Topics!!
PUT/DELETEメソッド追加
GinのtutorialではGETとPOSTのみ実装だったので、
先日挙げたタスク通り、まずはPUTとDELETEメソッドを追加実装します。
追加する機能等
- APIのPUTとDELETE
- albumデータのDB管理
- ブラウザ上での表示(HTMLから)
- キーワード一致のGET
タスク
- PUTとDELETEのコード記述
- GORMの基礎学習とMySQLのDBテーブル作成
- GORMを使用したAPI部分とDBの連携
- フロントエンド部分のインターフェース作成、Goと連携
- キーワード一致GET機能の追加、実装
PUTとDELETE実装コード
基本的には指定GETとPOSTの組み合わせのような構造だと思いました。
sample.go
//UpdateAlbumByID update an album from JSON received in the request body.
func UpdateAlbumByID(c *gin.Context) {
id := c.Param("id")
var album Album
//Data binding.
if err := c.BindJSON(&album); err != nil {
c.IndentedJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
//Loop over the list of albums, looking for ID
//and PUT album data.
for i, a := range albums {
if a.ID == id {
albums[i] = album
c.IndentedJSON(http.StatusOK, album)
return
}
}
c.IndentedJSON(http.StatusNotFound, gin.H{"message": "album not found"})
}
//DleteAlbumByID delete an album form JSON received in the request URI.
func DeleteAlbumByID(c *gin.Context) {
id := c.Param("id")
//Loop over the list of albums, looking for ID
//and Delete album data.
for i, a := range albums {
if a.ID == id {
albums = append(albums[:i], albums[i+1:]...)
c.IndentedJSON(http.StatusOK, gin.H{"message": "Album has been deleted"})
return
}
}
c.IndentedJSON(http.StatusNotFound, gin.H{"message": "album not found"})
}
使用している教材はこちら↓
おわりに
最後までお読みいただきありがとうございました。
アドバイス・応援コメント等いただけますと幸いです。