Go言語で簡易Webサーバーを立てる

以前、Beegoを使って、アプリケーションの開発をしましたが、本記事ではもう一歩手前レベルの記事を書きます。

Go言語は、Webフレームワーク(Beego)を使わなくてもアプリケーションサーバーを構築するのに優れた言語です。

今回は、Go言語のみの機能を使って、アプリケーションサーバーを構築しましょう。

学習履歴

プロジェクト作成

次のフォルダとファイルを作成してください。

ページの読み込み/保存機能の作成

main.goにページ読み取り機能を付与します。

Page Structには、ページ情報を格納する予定ですが、今は暫定で固定値(test, This is…)を指定しています。

loadPage関数を実行すると、「Title+.txt」のファイル名でをローカルにテキストファイルを作成します。

その後save関数にて、Bodyの内容をファイルに書き込みます。

プログラムを実行してみましょう。

ローカルにtest.txtが作成されたか確認してください。

アプリケーションサーバーの構築

先ほどのコードをアプリケーションサーバーとして動作するように書き換えましょう。

「net/http」パッケージの(http.ListenAndServe)を呼ぶと簡単にアプリケーションサーバー化できます。

次のコマンドで、アプリケーションサーバーを起動します。

別のテンプレートを立ち上げて、curlを打ってみましょう。Page情報が取得できるはずです。

テンプレート

テンプレートを作成します。

Djangoのテンプレートエンジンと似ていますね。

「.Title」や「.Body」は、main.goのPageモデルのプロパティです。

main.goを書き直してみましょう。

main.goを実行してみましょう。

「localhost:8080/view/test」にアクセスしてください。

ページ遷移は正常にできているようですね。save(保存機能)ボタンについては、この後に実装します。

保存とリダイレクト機能の実装

次は、ページの保存と編集ページにリダイレクトする機能を作成します。

main.goを実行してみましょう。

動作確認をしましょう。編集ページで「EDIT」を入力してからsaveボタンを押下します。

問題なく更新されたようですね。

おまけ:キャッシュ化

テンプレートの情報をキャッシュして、処理のスピードアップをしましょう。

おわりに

いかがだったでしょうか。

Go言語では、少ないコードで簡単にアプリケーションサーバーを立てることができます。

私にとって、Go言語は、Pythonの次に好きな言語になりつつありますね^^

それでは、また!

参考サイト

Go言語公式サイト

参考書籍

コメントを残す