iris 使用

iris 使用

Posted by 锐玩道 on April 21, 2021

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人博客

安装

Iris 是一个跨平台的软件。唯一的需求就是 Go 语言(1.13+)

进入项目根目录:

$ cd your_project_path
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct         # golang 代理
$ go get github.com/kataras/iris/v12@master

或者编辑 go.mod 文件

module your_project_name

go 1.13

require (
    github.com/kataras/iris/v12 v12.0.0
)

执行命令 go build

如果安装失败,不妨执行清除模块缓存

go clean –modcache # 清空 mod 文件夹下内容

项目版本更新

go-get 命令来获取最新的 Iris 版本。 Master 分支通常足够稳定了。

$ go get -u github.com/kataras/iris/v12@latest

2. 使用 Iris 构建服务端

2.1 简单例子 1——直接返回消息

package main

import (
	"github.com/kataras/iris/v12"
	"github.com/kataras/iris/v12/middleware/logger"
	"github.com/kataras/iris/v12/middleware/recover"
)

func main() {
	app := iris.New()
	app.Logger().SetLevel("debug")
	// 设置recover从panics恢复,设置log记录
	app.Use(recover.New())
	app.Use(logger.New())

	app.Handle("GET", "/", func(ctx iris.Context) {
		ctx.HTML("<h1>Hello Iris!</h1>")

	})
	app.Handle("GET", "/getjson", func(ctx iris.Context) {
		ctx.JSON(iris.Map{"message": "your msg"})
	})

	app.Run(iris.Addr("localhost:8080"))
}

其他便捷设置方法:

// 默认设置日志和panic处理
app := iris.Default()

我们可以看到iris.Default()的源码:

// 注:默认设置"./view"为html view engine目录
func Default() *Application {
	app := New()
	app.Use(recover.New())
	app.Use(requestLogger.New())
	app.defaultMode = true
	return app
}

2.2 简单例子 2——使用 HTML 模板

package main

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

func main() {
    app := iris.New()
    // 注册模板在work目录的views文件夹
    app.RegisterView(iris.HTML("./views", ".html"))

    app.Get("/", func(ctx iris.Context) {
        // 设置模板中"message"的参数值
        ctx.ViewData("message", "Hello world!")
        // 加载模板
        ctx.View("hello.html")
    })

    app.Run(iris.Addr("localhost:8080"))
}

上述例子使用的hello.html模板

    <html>
    <head>
    	<title>Hello Page</title>
    </head>
    <body>
    	<h1></h1>
    </body>
    </html>