vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

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

      2017/01/30

LINEで送る
Pocket


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

...
2016-03-14 23:26
はてブ

では、さっそく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を利用する際の参考になれば幸いです。

LINEで送る
Pocket

okutani (okutani_t) のヒトコト
まだまだ使い始めたばかりですが、仕事でも利用できるまで勉強していこうと思います。この機会にちゃんと静的型付け言語習得しよう。。!

Web開発のお仕事を募集しています

フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。

Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。

ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。

LINKお問い合わせ

LINKokutani's Portfolio


 - Go

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。