Golangフレームワーク【Echo】を使ってみた

Golang
  • URLをコピーしました!

こんにちは!RYOTAです!

当記事をご覧くださりありがとうございます!

Go言語のフレームワーク【Echo】に触れてみたので使い方や設定方法をまとめていこうと思います!

目次

Goのフレームワーク【Echo】とは

EchoとはGo言語の数あるフレームワークの中でも軽量なフレームワークになります。

高機能かつ拡張性も高くとても人気の高いフレームワークとなります。

公式

その他のGoフレームワーク

実際にサーバーを構築

今回はサクっとお試しするためにDocker環境を構築してその上でEchoを動かしてみます。

下記が目標の構成です。

┣─ back
┃  └─ server.go
┣─ Dockerfile
┣─ go.mod
┣─ go.sum
└─ docker-compose.yml

Dockerの設定

まずはdocker-compose.ymlとDockerfileを用意しGoが動かせる環境を作ります。

version: '3'
services:
  server:
    build: ./back
    tty: true
    volumes:
      - ./back:/go/src/work
FROM golang

RUN mkdir /go/src/work

WORKDIR /go/src/work

ADD . /go/src/work

Dockerfileが用意できたらDockerを起動します。

$ docker-compose build
$ docker-compose up -d

Dockerの起動が確認できたらGoが動くか確認します。

テスト用のファイルを作成します。(後で削除します。)

package main

import "fmt"

func main() {
	fmt.Printf("テスト実行\n")
}

コンテナにアクセス

$ docker-compose exec server bash

作成したtest.goを実行し、結果が返って来ればOK!

$ go run test.go
# -> テスト実行

Echoをインストール

下記のコマンドを実行しgo.modを作成します。

$ go mod init echo-test

goの初期化が完了したらいよいよEchoをインストールしてみます。

$ go get github.com/labstack/echo/v4

上記コマンドで正常にインストールが完了するとgo.sumが作成され必要なパッケージが入ってることが確認できます。

EchoでHTTPサーバーを作成

簡単なレスポンスを返すメインファイルを作成します。

package main

import (
	"net/http"

	"github.com/labstack/echo/v4"
)

func main() {
	e := echo.New()
	e.GET("/", func(c echo.Context) error {
		return c.String(http.StatusOK, "Hello World!")
	})
	e.Logger.Fatal(e.Start(":3000"))
}

最後にdocker側のポートを割り当てて、起動時にサーバーも起動するように変更します。

version: '3'
services:
  server:
    build: ./back
    tty: true
    volumes:
      - ./back:/go/src/work 
    ports:                      # 追加
      - 3000:3000               # 追加
    command: go run server.go   # 追加

一度コンテナから抜けて、Dockerを再起動

$ exit
$ docker-compose up

localhost:3000でアクセスしてレスポンスが返って来れば成功!

最後に

今回はGo言語のフレームワークEchoをインストールし、簡単なHTTPサーバーを作成しました。

超最小限の動作チェックになるので、次回はDBにアクセスしながらCLUDが行える状態を目指そうと思います!

最後までご覧いただきありがとうございます!

Golang

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次