Iris

简介

iris是一款Go语言中用来开发的web应用框架,该框架支持编写一次并在任何地方以最小机器功率运行,如Android、ios、Linux和windows等。该框架只需要一个可执行的服务就可以在平台上运行了。

iris框架以简单而强大的api而被开发者熟悉。iris除了为开发者提供非常简单的访问方式外,还同样支持MVC。另外,用iris构建微服务也很容易。

在iris框架的官方网站上,被称为速度最快的go后端开发框架。在iris的网站文档上,列出了该框架具备的一些特点和框架特性,列举如下:

  1. 聚焦高性能
  2. 健壮的静态路由支持和通配符子域名支持
  3. 视图系统支持超过5以上的模板
  4. 支持定制事件的高可拓展性websocket API
  5. 带有GC,内存 & Redis 提供支持会话
  6. 方便的中间件和插件
  7. 完整REST API
  8. 能定制的HTTP错误
  9. 源码改变后自动加载

等等还有很多特性,大家可以参考iris官方文档。在GoWeb开发的诸多框架中,各个维度的性能比较如下:

Iris框架学习渠道

在学习Iris框架过程时,我们需要有相应的配套资料才能够完成我们的学习。下面是学习Iris框架过程中可能会用到的资料。

  1. Iris官网:https://iris-go.com/
  2. Iris框架源码地址:https://github.com/kataras/iris
  3. Iris框架中文学习文档: https://studyiris.com/doc/

当然,还有其他相关资料,比如说xorm框架等,这些我们在后面的课程文档中学习到以后再做解释和说明。

Iris框架安装

官方版

环境要求:iris框架要求golang版本至少为1.8。各位同学可以通过打开终端,执行:go version 命令来查看自己机器的go环境版本。

安装Iris框架非常简单,使用go语言的全局安装第三方代码的命令get即可。安装Iris框架的命令如下:

1
go get -u github.com/kataras/iris

在本地终端中执行如上的安装命令,等待命令执行成功,即表示Iris源码下载安装完成。安装完成Iris框架以后,能够在本地机器的GoPath环境目录中的src/github.com/目录下找到iris框架对应的包名,如下图所示:

如图所示的kataras/iris所在的目录就是iris框架的源码,如上图所示即是安装成功。

私教版

下午在操作安装iris的时候应该是被墙了,一直提示不成功,然后在网上找了以下方法,为了大家避免踩坑,我贴出来

golang 1.13 可以直接执行:

粘贴 $ 之后的命令!

1
2
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

阿里云 Go Module 国内镜像仓库服务

设置方法

1
2
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

这里我们使用代理镜像,参考goproxy。执行如下命令:

1
2
3
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile

之后就可以执行成功了,如下图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ go get  -u github.com/kataras/iris
go get github.com/kataras/iris: module github.com/kataras/iris: Get "https://goproxy.cn/github.com/kataras/iris/@v/list": dial tcp: i/o timeout
zhaoliang:iris zhaoliang$ go get -u github.com/kataras/iris
go: downloading github.com/kataras/iris v11.1.1+incompatible
go: github.com/kataras/iris upgrade => v11.1.1+incompatible
go: downloading gopkg.in/yaml.v2 v2.2.2
go: finding module for package github.com/flosch/pongo2
go: finding module for package github.com/Joker/jade
go: finding module for package github.com/iris-contrib/formBinder
go: downloading golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5
go: downloading github.com/Joker/jade v1.0.0
go: downloading github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4
go: downloading github.com/iris-contrib/formBinder v5.0.0+incompatible
go: found github.com/iris-contrib/formBinder in github.com/iris-contrib/formBinder v5.0.0+incompatible
go: found github.com/Joker/jade in github.com/Joker/jade v1.0.0
go: found github.com/flosch/pongo2 in github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4
go: finding module for package github.com/gorilla/schema
go: downloading github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5
go: downloading github.com/gorilla/schema v1.1.0
go: found github.com/gorilla/schema in github.com/gorilla/schema v1.1.0
go: github.com/modern-go/reflect2 upgrade => v1.0.1
go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd
go: golang.org/x/text upgrade => v0.3.2
go: github.com/juju/errors upgrade => v0.0.0-20200330140219-3fe23663418f
go: golang.org/x/net upgrade => v0.0.0-20200501053045-e0ff5e5a1de5
go: golang.org/x/crypto upgrade => v0.0.0-20200429183012-4b2356b1ed79
go: gopkg.in/yaml.v2 upgrade => v2.2.8
go: golang.org/x/sys upgrade => v0.0.0-20200501052902-10377860bb8e
go: downloading golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79
go: downloading gopkg.in/yaml.v2 v2.2.8
go: downloading github.com/juju/errors v0.0.0-20200330140219-3fe23663418f
go: downloading golang.org/x/sys v0.0.0-20200501052902-10377860bb8e
go: downloading golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5
go: downloading github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd

源码案例

在iris源码安装完成以后,iris框架为开发者提供了自己学习的实战案例,供开发者自行学习。iris提供的案例在iris框架目录中的_example目录下,在学习时可以进行参考。

接下来我们就可以开始学习iris的相关内容,进行代码开发了。

Iris构造服务实例

在安装完成Iris的源码后,我们就开始来编写最简单的一个Iris的服务。在Iris中,构建并运行一个服务实例需要两步:

  1. 通过iris.New()方法可以实例化一个应用服务对象app

  2. 通过Run方法开启端口监听服务,运行服务实例

如下是一个最简单的服务案例Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import "github.com/kataras/iris"

func main() {

//1.创建app结构体对象

app := iris.New()

//2.端口监听

app.Run(iris.Addr(":7999"), iris.WithoutServerError(iris.ErrServerClosed))

////application.Run(iris.Addr(":8080"))//第一种

//application.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) //第二种

}