Go言語フレームワーク『Echo』の導入方法&かんたんな使い方
2017/01/30
こんにちは、okutani(@okutani_t)です。仕事ではPHPやRubyを書く機会が多いのですが、勉強がてらGo言語のフレームワーク『Echo』を使ってみました。
本記事では「Echoの導入方法」「Hello World出力」「jsonデータを返却」「ビルド&バックグラウンドで実行」あたりまでかんたんに解説しています。
Echoの公式サイト、GitHubリポジトリは以下です。
LINKEcho – High performance, minimalist Go web framework
LINKlabstack/echo: High performance, minimalist Go web framework
今回、動作環境はMac(macOS Sierra)上でおこなっています。
MacにGo言語を導入する方法は過去に記事にしています。先にこちらの記事を見てGo言語を導入しておきましょう。
では、さっそくEchoの導入方法からみていきましょう。
スポンサーリンク
Echoのインストール
では、Echoを導入していきます。
以下のコマンドをターミナルから実行。
$ go get -u github.com/labstack/echo
これでEchoが導入されました。かんたんですね。
上記では「-uオプション」をつけて、echoのインストールと、その依存関係にあるパッケージを強制的に更新しています。
ちなみに、インストールされたechoは「$GOPATH/src」以下に配置されます。
では、Hello Worldを出力してみましょう。
Hello Worldを表示する
Hello Worldを表示するプログラムを記述していきます。
今回は、以下の内容でserver.goファイルをプロジェクトディレクトリ以下に配置しました。
package main
import (
"net/http"
"github.com/labstack/echo")
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":1323"))
}
では、以下のgo runコマンドで実行してみましょう。
$ go run server.go
ブラウザから「http://localhost:1323」へアクセスしてみます。
Hello Worldがブラウザ上で表示されていることが確認できました。
ルーティング設定&jsonを返してみる
次に、ルーティングを追加し、json形式のデータを返すように追記してみます。
server.goを以下のように変更します。
package main
import (
"net/http"
"github.com/labstack/echo")
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.GET("/users/:id", func(c echo.Context) error {
jsonMap := map[string]string{
"name": "okutani",
"hoge": "piyo",
}
return c.JSON(http.StatusOK, jsonMap)
})
e.Logger.Fatal(e.Start(":1323"))
}
go runしなおし、ブラウザから「http://localhost:1323/users/1」へアクセスしてみます。
上図のように、json形式のデータを返すことができました。
「/users/:id」とすることでidを引数に取れるので、通常はDBからidを使ってデータを取得したりしますが、今回は省いて記述しています。
ビルド&バックグラウンドで実行させる
先ほどはgo runでコマンドで実行しましたが、次はビルドしてバックグラウンドで実行してみます。
以下のコマンドで実行ファイルにビルドします。
$ go build server.go
&をつけてバックグラウンドで実行します。
$ ./server &
停止させたい場合、以下のコマンドでプロセスを確認してkillします。
$ ps aux | grep server
$ kill PID
また、以下のように実行することで、ビルドせずバックグラウンドで実行することもできます。
$ go run server.go &
ブラウザからアクセスして、Hello Worldが表示されればOKです。
ビルド時にエラーが出る場合
ビルド時時に以下のエラーが出ました。
go install command-line-arguments: open index: permission denied
これはディレクトリごと権限を付与すればOKです。以下のコマンドを実行。
$ sudo chmod -R 777 /path/to/proj-dir/
これでビルドできるようになりました。以下の記事を参考にしました。
参考Amazon Linux に GoLang (1.5) をインストール & Gin、MongoDB (3.2) を導入し、APIサーバ を10分で作る – Qiita
かんたんではありましたが、Echoの導入方法、Hello Worldの出力などなどを解説しました。
Go言語のフレームワークEchoを利用する際の参考になれば幸いです。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク