Iris
简介
iris是一款Go语言中用来开发的web应用框架,该框架支持编写一次并在任何地方以最小机器功率运行,如Android、ios、Linux和windows等。该框架只需要一个可执行的服务就可以在平台上运行了。
iris框架以简单而强大的api而被开发者熟悉。iris除了为开发者提供非常简单的访问方式外,还同样支持MVC。另外,用iris构建微服务也很容易。
在iris框架的官方网站上,被称为速度最快的go后端开发框架。在iris的网站文档上,列出了该框架具备的一些特点和框架特性,列举如下:
- 聚焦高性能
- 健壮的静态路由支持和通配符子域名支持
- 视图系统支持超过5以上的模板
- 支持定制事件的高可拓展性websocket API
- 带有GC,内存 & Redis 提供支持会话
- 方便的中间件和插件
- 完整REST API
- 能定制的HTTP错误
- 源码改变后自动加载
等等还有很多特性,大家可以参考iris官方文档。在GoWeb开发的诸多框架中,各个维度的性能比较如下:
Iris框架学习渠道
在学习Iris框架过程时,我们需要有相应的配套资料才能够完成我们的学习。下面是学习Iris框架过程中可能会用到的资料。
- Iris官网:https://iris-go.com/
- Iris框架源码地址:https://github.com/kataras/iris
- 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:
|
阿里云 Go Module 国内镜像仓库服务
设置方法
1 2
| $ go env -w GO111MODULE=on $ go env -w GOPROXY=https:
|
这里我们使用代理镜像,参考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中,构建并运行一个服务实例需要两步:
通过iris.New()方法可以实例化一个应用服务对象app
通过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() {
app := iris.New()
app.Run(iris.Addr(":7999"), iris.WithoutServerError(iris.ErrServerClosed))
}
|
Author:
Wenng
Slogan:
Do you believe in DESTINY?