はじめに
Goはインストールしてあるものとします。
REST APIを作りたい場合はこちらを参考にしてみてください。
【Go】echoを使ってさくっとAPIサーバを構築する
準備
ディレクトリ構成
(任意のディレクトリ)
|- views
|-index.html
|- server.go
|- index.go
echoをインストール
echoをインストールします。
$ go get -u github.com/labstack/echo
実装
以下のように記述していきます。
initRoutingやinitTemplateはmain関数の中にまとめて記載しても問題ありませんが、分けておくとわかりやすいかと思います。
routingを増やしたかったら、
- initRoutingの中に
e.GET("/", hoge)
と一行追記- 詳細はこちらの公式を参考
- hoge関数を作成
- htmlファイルを作成
するだけなので簡単ですね。
server.go
package main
import (
"html/template"
"io"
"github.com/labstack/echo"
)
func main() {
e := echo.New()
initRouting(e)
e.Logger.Fatal(e.Start(":1323"))
}
type Template struct {
templates *template.Template
}
func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
return t.templates.ExecuteTemplate(w, name, data)
}
func initRouting(e *echo.Echo) {
initTemplate(e)
e.GET("/", index)
}
func initTemplate(e *echo.Echo) {
t := &Template{
templates: template.Must(template.ParseGlob("views/*.html")),
}
e.Renderer = t
}
index.go
package main
import (
"net/http"
"github.com/labstack/echo"
)
func index(c echo.Context) error {
return c.Render(http.StatusOK, "index", "World")
}
index.html
{{define "index"}}
Hello, {{.}}!
{{end}}
実行
プロジェクト配下で以下のコマンドを実行。
go run .
http://localhost:1323/ にアクセスして「Hello, World!」と表示されることを確認。