k01ken’s b10g

He110 W0r1d!

Go言語のマイクロフレームワークであるIrisを使ってみる

開発環境は、Windows 10 Pro(64bit) + go version go1.15.3 windows/amd64

1.以下のコマンドを入力して、プロジェクト用のディレクトリを作成したいと思います。

cd c:\ && mkdir iris_sample && cd iris_sample
go mod init iris_sample
go get -u github.com/kataras/iris/v12@master

2.以下のコードをiris_sampleディレクトリ内にmain.goという名前で保存します。

package main

import "github.com/kataras/iris/v12"

type Book struct {
  Title string `json: "title"`
}

func main(){
  app := iris.New()
  app.Get("/", func(ctx iris.Context){
    books := []Book{
      {"Mastering Concurrency in Go"},
      {"Go Design Patterns"},
      {"Black Hat Go"},
     }
     ctx.JSON(books)
  })
  app.Listen(":8080")
}

3.以下のコマンドを入力して、Webサーバーを実行します

go run main.go

ちょっと時間がかかります。許可を求められるので、許可したら、localhost:8080にアクセスしてみてください。以下のように表示されます。結果は、JSON形式で返すので、以下のようになっています。
f:id:k01ken:20210501235936p:plain

JSONではなくてHTMLのテンプレートで表示してみる

※いったん、先ほど起動したWebサーバーを停止してください。
1.テンプレートを入れるディレクトリを作成する(viewsという名前で作成する)

mkdir views

2.以下のHTMLファイルをindex.htmlという名前でviewsディレクトリ内に保存してください

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <h1>Hello Iris!</h1>
    <h2>{{ .data }}</h2>
  </body>
</html>

3.main.goのmain関数を以下のように書き換えてください

func main(){
  app := iris.New()
  tmpl := iris.HTML("./views", ".html")
  app.RegisterView(tmpl)

  app.Get("/", func(ctx iris.Context){
    ctx.ViewData("data", "Hello iris!")
    ctx.View("index.html")
  })
  app.Listen(":8080")
}

4.Webサーバーを実行して、localhost:8080にアクセスしてみてください。以下が結果です。
f:id:k01ken:20210502004306p:plain

■参考リンク

Iris
Iris Docs
・公式サイトのドキュメントを読むよりも、IrisのGitHubWikiを見た方が分かりやすいので、オススメ。
kataras / iris
iris
Golang - Iris Web Framework Tutorial - Getting Started & Basic App
Sessions