[Go言語]FiberでWebアプリケーションを実装しよう~GORM~

こんにちは。KOUKIです。

とあるWeb系企業でエンジニアをやってます。

今日は、Go言語のWebフレームワークであるFiberとORMライブラリであるGORMを使って、簡単なWebアプリケーションを実装します。

めちゃくちゃ簡単ですが説明は省きますので、中級者向けの内容かも知れません。

下記のYoutubeを参考にしました。というかめっちゃそのままです。

プロジェクトの準備

最初にプロジェクトを用意しましょう。

Webサーバーの実装

Fiberを使って、簡単なWebサーバーを構築します。

Webサーバーは、下記のコマンドで起動します。

ブラウザから「http://localhost:8080」にアクセスしてみましょう。

OKですね。簡単ですが、Webサーバーを作成しました。

ハンドラーの実装

続いて、ハンドラーを実装しましょう。

このハンドラーは、main.goから登録します。

下記のコマンドで、Webサーバーを起動し、Curlでテストしましょう。

OKですね。

DB Connectionの実装

続いて、DB Connection処理を実装していきましょう。ちなみに、sqlite3に接続します。

sqlite3はローカルにファイル(DB)を作成してくれるので、MySQLやPostgresのようにDBを構築する必要はありません。

手軽にGORMの機能を試せるわけですね^^

下記のコマンドで、Webサーバーを起動してみましょう(停止はCtrl + cです)。

Database connection successfully opend!」と出たので、OKですね。

接続に成功するとローカルに「books.db」ファイルが作成されます。

マイグレーション処理の実装

次に、マイグレーション処理の実装を行います。

book.goにBook Structを定義します。

この構造体が、DBのスキーマーになります。

また、「gorm.Model」は、下記の構造体です。

リクエスト受信時に上記のパラメータが自動的に更新されるので、大変便利です。

GORMには、(大変便利なことに)マイグレーションを実行するAutoMigrateメソッドが定義されています。

Webサーバーを起動し直しましょう。

OKですね。

GetBooksの実装

GetBooksの中身を実装します。

db.Find(&books)では、DBの検索結果をBookのスライスにそのまま格納してくれます。めちゃくちゃ便利です。

ただし、現状はDBは空なのでCurlを打っても「[]」が返却されます。

GetBookの実装

GetBookを実装します。

URLの定義が、「”/api/v1/book/:id”」になっていたと思います。

c.Params(“id”)にて、「:id」に指定された値を取得することが可能です。

NewBookの実装

NewBookを実装します。

下記のボタンで、Webサーバーを起動します。

curlで動作確認をしましょう。

OKですね。

DeleteBookの実装

最後にDeleteBookの実装をしましょう。

最初にDBからデータを取得し、取得したデータをもとに削除をしました。

下記のコマンドで、Webサーバーを起動しましょう。

OKですね。

NewBook改

NewBookを改良します。

今度は、リクエストパラメータの値を利用してデータを作成するように実装しました。

BodyParserは、リクエストしたデータをそのままGoのStructにはめ込んでくれる便利メソッドです。

下記のコマンドで、Webサーバーを起動します。

OKですね。

まとめ

sqlite3を使うとDB操作系のプログラムをサクッとかけてとても便利ですね。

また、GORMを利用するとマイグレーションやDB操作プログラムなどお手軽に実装できます。

あとは、処理速度ですね。GORMの処理速度は早いのか気になるところです。

それでは、また!

次回

次回は、HTTPリクエストのUnit Testを実装します。

Go言語まとめ

まとめ記事


ソースコード

main.go

book.go

sqlite.go

コメントを残す