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