Iris简介
- Iris是一个通过GO编写的快速的,简单的,但是功能齐全和非常有效率的web框架。
- 编写一次并在任何地方以最小的机器功率运行,如Android、ios、Linux和Windows等。它支持Google Go,只需一个可执行的服务即可在所有平台。
- Iris以简单而强大的api而闻名。 除了Iris为您提供的低级访问权限。 Iris同样擅长MVC。 它是唯一一个拥有MVC架构模式丰富支持的Go Web框架,性能成本接近于零。
- Iris为您提供构建面向服务的应用程序的结构。 用Iris构建微服务很容易。
Iris特性
- 专注于高性能
- 简单流畅的API
- 高扩展性
- 强大的路由和中间件生态系统
- 使用iris独特的表达主义路径解释器构建RESTful API
- 动态路径参数化或通配符路由与静态路由不冲突
- 使用重定向选项从URL中删除尾部斜杠
- 使用虚拟主机和子域名变得容易
- 分组API和静态或甚至动态子域名
- net / http和negroni-like处理程序通过iris.FromStd兼容
- 针对任意Http请求错误 定义处理函数
- 支持事务和回滚
- 支持响应缓存
- 使用简单的函数嵌入资源并与go-bindata 保持兼容
- mvc
- 上下文
- 高度可扩展的试图渲染(目前支持markdown,json,xml,jsonp等等)
- 正文绑定器和发送HTTP响应的便捷功能
- 限制请求正文
- 提供静态资源或嵌入式资产
- 本地化i18N
- 压缩(Gzip是内置的)
- 身份验证
- Basic Authentication
- OAuth, OAuth2 (支持27个以上的热门网站)
- JWT *服务器
- 通过TLS提供服务时,自动安装和提供来自https://letsencrypt.org的证书
- 默认为关闭状态
- 在关闭,错误或中断事件时注册
- 连接多个服务器,完全兼容 net/http#Server
- 视图系统.支持五种模板隐隐 完全兼容 html/template
- Websocket库,其API类似于http://socket.io [如果你愿意,你仍然可以使用你最喜欢的]
- 热重启
- Typescript集成 + Web IDE
安装Iris
iris安装要求golang版本至少为1.8,建议1.9(本文档按照1.9进行编写)$ go get -u github.com/kataras/iris
注解:Go 1.9支持类型别名,Iris已经为Go 1.8.3做好了准备,它有一个文件,kataras/iris/context.go 对Go 1.9的限制构建访问权限声明了Iris的所有类型别名,所有这些都在同一个地方。
在 Go 1.9之前,你必须导入“github.com/kataras/iris/context”来创建一个Handler: 如一下程序
package main
import (
"github.com/kataras/iris"
"github.com/kataras/iris/context"//需要单独引入
)
func main() {
app := iris.New()
app.Get("/", func(ctx context.Context){})
app.Run(iris.Addr(":8080"))
}
从 Go 1.9开始,在您不必导入之后,您可以选择性地执行此操作:
package main
import "github.com/kataras/iris"
func main() {
app := iris.New()
app.Get("/", func(ctx iris.Context){})
app.Run(iris.Addr(":8080"))
}
同样的 kataras/iris/core/router/APIBuilder#PartyFunc
package main
import (
"github.com/kataras/iris"
//"github.com/kataras/iris/core/router" 1.9之后需要引入
)
func main() {
app := iris.New()
app.Get("/", func(ctx iris.Context){})
app.Run(iris.Addr(":8080"))
app.PartyFunc("/cpanel", func(child iris.Party) {
child.Get("/", func(ctx iris.Context){})
})
// OR
cpanel := app.Party("/cpanel")
cpanel.Get("/", func(ctx iris.Context){})
}
Iris相关
Iris官网:https://iris-go.com/Iris Github:https://github.com/kataras/irisgithub