配置

在iris中 初始化应用程序 已经使用了默认的配置值,所以我们可以无需使用任何配置也可以启动我们的应 用程序,像下面一样只需要简单的几行代码就可以运行我们web应用

通过程序内部配置

  1. package main
  2. import (
  3. "github.com/kataras/iris"
  4. )
  5. func main() {
  6. app := iris.New()
  7. app.Get("/", func(ctx iris.Context) {
  8. ctx.HTML("<b>Hello!</b>")
  9. })
  10. // [...]
  11. //我们可以用这种方法单独定义我们的配置项
  12. app.Configure(iris.WithConfiguration(iris.Configuration{ DisableStartupLog:false}))
  13. //也可以使用app.run的第二个参数
  14. app.Run(iris.Addr(":8080"), iris.WithConfiguration(iris.Configuration{
  15. DisableInterruptHandler: false,
  16. DisablePathCorrection: false,
  17. EnablePathEscape: false,
  18. FireMethodNotAllowed: false,
  19. DisableBodyConsumptionOnUnmarshal: false,
  20. DisableAutoFireStatusCode: false,
  21. TimeFormat: "Mon, 02 Jan 2006 15:04:05 GMT",
  22. Charset: "UTF-8",
  23. }))
  24. //通过多参数配置 但是上面两种方式是我们最推荐的
  25. // 我们使用With+配置项名称 如WithCharset("UTF-8") 其中就是With+ Charset的组合
  26. //app.Run(iris.Addr(":8080"), iris.WithoutStartupLog, iris.WithCharset("UTF-8"))
  27. //当使用app.Configure(iris.WithoutStartupLog, iris.WithCharset("UTF-8"))设置配置项时
  28. //需要app.run()面前使用
  29. }

通过TOML配置文件

我们在config 目录下新建main.tml

  1. DisablePathCorrection = false
  2. EnablePathEscape = false
  3. FireMethodNotAllowed = true
  4. DisableBodyConsumptionOnUnmarshal = false
  5. TimeFormat = "Mon, 01 Jan 2006 15:04:05 GMT"
  6. Charset = "UTF-8"
  7. [Other]
  8. MyServerName = "iris"

在程序内做以下使用

  1. package main
  2. import (
  3. "github.com/kataras/iris"
  4. )
  5. func main() {
  6. app := iris.New()
  7. app.Get("/", func(ctx iris.Context) {
  8. ctx.HTML("<b>Hello!</b>")
  9. })
  10. // [...]
  11. // 通过文件配置 我们可以更加方便的切换开发环境配置和生产环境.
  12. app.Run(iris.Addr(":8080"), iris.WithConfiguration(iris.TOML("./configs/iris.tml")))
  13. }

通过YAML配置文件

  1. DisablePathCorrection: false
  2. EnablePathEscape: false
  3. FireMethodNotAllowed: true
  4. DisableBodyConsumptionOnUnmarshal: true
  5. TimeFormat: Mon, 01 Jan 2006 15:04:05 GMT
  6. Charset: UTF-8
  1. package main
  2. import (
  3. "github.com/kataras/iris"
  4. )
  5. func main() {
  6. app := iris.New()
  7. app.Get("/", func(ctx iris.Context) {
  8. ctx.HTML("<b>Hello!</b>")
  9. })
  10. // [...]
  11. app.Run(iris.Addr(":8080"), iris.WithConfiguration(iris.YAML("./configs/iris.yml")))
  12. }

Built'n配置器

  1. // err := app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
  2. // 当配置此项 如果web服务器 出现异常 我们将返回nil.
  3. // 参考`Configuration的IgnoreServerErrors方法
  4. // 地址: https://github.com/kataras/iris/tree/master/_examples/http-listening/listen-addr/omit-server-errors
  5. func WithoutServerError(errors ...error) Configurator
  6. // 当主服务器打开时,是否显示启动信息 如下
  7. //Now listening on: http://localhost:8080
  8. // Application started. Press CTRL+C to shut down.
  9. var WithoutStartupLog
  10. //当按下ctrl+C 时 禁止关闭当前程序(不会中止程序的运行)
  11. var WithoutInterruptHandler
  12. //路径重新定义(默认关闭)比如当访问/user/info 当该路径不存在的时候自动访问/user对应的handler
  13. var WithoutPathCorrection
  14. //如果此字段设置为true,则将创建一个新缓冲区以从请求主体读取。
  15. var WithoutBodyConsumptionOnUnmarshal
  16. //如果为true则关闭http错误状态代码处理程序自动执行
  17. var WithoutAutoFireStatusCode
  18. //转义路径
  19. var WithPathEscape
  20. //开启优化
  21. var WithOptimizations
  22. //不允许重新指向方法
  23. var WithFireMethodNotAllowed
  24. //设置时间格式
  25. func WithTimeFormat(timeformat string) Configurator
  26. //设值程序字符集
  27. func WithCharset(charset string) Configurator
  28. //启用或添加新的或现有的请求标头名称
  29. func WithRemoteAddrHeader(headerName string) Configurator
  30. //取消现有的请求标头名称
  31. func WithoutRemoteAddrHeader(headerName string) Configurator
  32. //自定义配置 key=>value
  33. func WithOtherValue(key string, val interface{}) Configurator