Quantcast
Viewing all articles
Browse latest Browse all 155

Go言語フレームワーク『Echo』の導入方法&かんたんな使い方

Image may be NSFW.
Clik here to view.

こんにちは、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言語を導入しておきましょう。

Image may be NSFW.
Clik here to view.
Mac・CentOS7にgolangを導入する方法
こんにちは、okutani(@okutani_t)です。本記事ではGoogleが開発したgo言語の導入方法...
2016-03-14 23:50
Image may be NSFW.
Clik here to view.
はてブ

では、さっそく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」へアクセスしてみます。

Image may be NSFW.
Clik here to view.

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」へアクセスしてみます。

Image may be NSFW.
Clik here to view.

上図のように、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を利用する際の参考になれば幸いです。


Viewing all articles
Browse latest Browse all 155

Trending Articles