[Go言語]ginフレームワークでアプリ開発~MySQLの削除処理~

前回は、Go言語にてMySQLの更新処理を実装しました。

今回は、MySQLの削除処理を実装していきます。

前回

プロジェクト構成

削除処理の実装

さっそく、削除処理を実装していきましょう。

URLマッピングの追加

最初に、リクエスト先を追加します。

app配下のurl_mappings.goに以下を追加してください。

DELETEメソッドで「products/<product id>」にリクエストするとDeleteProductが実行されるように実装しました。

コントローラーの追加

続いて、controllers/products配下のproducts_controller.goにDeleteProduct関数を実装します。

GetやUpdateと同様にリクエストからproduct idを取得後、DeleteProductサービスに処理を振り分けています。

getProductIDは、IDを取得するためのメソッドで、GetやUpdate関数と重複している処理を切り出したものです。

GetやUpdateも書き換えましょう。

サービスの追加

続いて、サービスを追加しましょう。

Deleteの追加

公式サイトを参考に、Deleteメソッドを追加します。

domain/products/product_dao.goを開いてください。

今回は、物理削除(データベースからの削除)ではなく、論理削除を選択しました。論理削除では、データベースからデータは消えませんが、DeletedAtに削除日時が追加されます。

動作確認

動作確認のため、dockerコンテナを起動しましょう。

最初に「http://localhost:8080/products/1」にアクセスして、データを確認します。この時「Get」メソッドを使用します。

Talend API Testerを開いて、Sendボタンを押下しましょう。

では、Deleteメソッドに切り替えて、リクエストを送信してみましょう。

Deleteステータスが返却されました。

もう一度、Getメソッドを使用します。

404エラーが返却されました。

phpmyadmin(localhost:8888)にアクセスしてみましょう。

deleted_atに日付が追加されているレコードがありますが、これが先ほど論理削除したデータになります。

問題なく機能しているようですね。

おわりに

これで一通り、Create, Read, Update, Delete処理を実装できましたので、一旦終わりにします。

次は、フロントエンド部分をReactで作っていく予定です!!

それでは、また!

関連記事

コメントを残す