0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【#43 エンジニア転職学習】GinTutorialのWebApp改造 PUT/DELETE

Posted at

はじめに

富山県に住んでいる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
タスク
  1. PUTとDELETEのコード記述
  2. GORMの基礎学習とMySQLのDBテーブル作成
  3. GORMを使用したAPI部分とDBの連携
  4. フロントエンド部分のインターフェース作成、Goと連携
  5. キーワード一致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"})
}
使用している教材はこちら↓

おわりに

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

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?