路由组的使用

在实际开发中,我们通常都是按照模块进行开发,同一模块的不同接口url往往是最后的一级url不同,具有相同的前缀url。因此,我们期望在后台开发中,可以按照模块来进行处理我们的请求,对于这种需求,iris框架也是支持的。

usersRouter := app.Party("/admin", userMiddleware)

如上述代码所示,iris框架中使用app.Party方法来对请求进行分组处理,第二个参数是处理路由组的中间件方法,通常情况下我们会在中间件中写context.Next()方法。

应用程序内代码配置

在iris框架开发中,初始化应用程序时已经使用了默认的配置值。作为开发者,我们可以不需要其他额外的配置就启动我们的应用程序。

如果开发者想要自己根据自己的需求进行配置,iris框架也是支持的,本节课我们来学习一下iris框架所支持的配置方式。

现在主流的配置文件格式有:xml、yaml、 cnf、toml、json等等格式。xml现在使用的已经不多,cnf格式的配置文件适合数据库的配置文件,在本节内容中,我们将带大家学习多种配置文件的使用方法。

在iris程序的全局app实例中,支持通过多种方式进行代码配置,途径是多样的:

  • 1、使用app.Configure(iris.WithConfiguration(iris.Configuration{DisableStartuplog:false}))来对整体应用进行配置项配置

  • 2、通过app.Run方法的第二个参数来进行相关的自定义配置项的配置,第二个参数的类型同1一致。

以上两种方式,无论哪种方式,都是对app服务应用进行Configuration配置,提供应用配置的Configuration结构体定义所支持的配置项分别为:

  • DisableInterruptHandler:如果设置为true,当人为中断程序执行时,则不会自动正常将服务器关闭。如果设置为true,需要自己自定义处理。默认为false。

  • DisablePathCorrection: 该配置项表示更正并将请求的路径重定向到已注册的路径。比如:如果请求/home/ 但找不到此Route的处理程序,然后路由器检查/home处理程序是否存在,如果是,(permant)将客户端重定向到正确的路径/home。默认为false。

  • EnablePathEscape:该配置选项用于配置是否支持路径转义。适用于请求url中包含转义字符时进行配置。默认为false。

  • FireMethodNotAllowed: 默认为false。

  • DisableBodyConsumptionOnUnmarshal:该设置选项用于配置读取请求数据的方法是否使用,如果设置为true,则表示禁用context.UnmarshalBody,context. ReadJSON以及context.ReadXML。默认为false。

  • DisableAutoFireStatusCode:该配置变量为控制是否处理错误自动执行,如果为true,则不会进行错误自动执行。该配置项默认为false。

  • TimeFormat:时间格式。默认格式为:"Mon, 02 Jan 2006 15:04:05 GMT"

  • Charset:字体格式选项。默认字体为:"UTF-8"

通过TOML配置文件进行配置

什么是toml? toml是Tom’s Obvious, Minimal Language的缩写, toml是一种配置文件。TOML是前GitHub CEO, Tom Preston-Werner,于2013年创建的语言,其目标是成为一个小规模的易于使用的语义化配置文件格式。TOML被设计为可以无二义性的转换为一个哈希表(Hash table)。

具体的项目配置使用中,我们需要创建config.tml类型的配置文件,并在程序中明确使用toml文件进行读取配置内容。如下图所所示:

app.Configure(iris.WithConfiguration(iris.TOML("./configs/iris.tml")))

通过YAML配置文件

YAML 是专门用来写配置文件的语言,写法简洁、功能强大,比JSON格式还要方便。Yaml实质上是一种通用的数据串行化格式。Yaml的主要语法格式有以下几项:

  • 大小写敏感。

  • 使用缩进表示层级关系。

  • 缩进时不允许使用Tab键,只允许使用空格。

  • 缩进的空格数目不受限制,相同层级的配置元素 左侧对齐即可。

在本节内容中,我们可以通过yaml配置文件来对应用进行简单选项的的配置:

app.Configure(iris.WithConfiguration(iris.))

通过读取自定义配置文件

这里我们给大家演示如何使用json格式的配置文件来进行应用的配置,然后从应用程序中进行读取。

首先创建json格式的配置文件,并编写配置项,如下图:

{
"appname": "IrisDemo",
"port": 8000
}

在应用程序内,编程实现对配置文件的读取和解析,如下图:

file, _ := os.Open("/Users/hongweiyu/go/src/irisDemo/5-路由组及Iris配置/config.json")
defer file.Close()

decoder := json.NewDecoder(file)
conf := Coniguration{}
err := decoder.Decode(&conf)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println(conf.Port)

本节课我们带大家学习了在iris框架中如何使用路由组和对应用进行相关的配置的内容,本节课学习的内容我们在实战项目中都能能够用到。

GoWeb开发_Iris框架讲解(四):Iris框架设置操作的更多相关文章

  1. GoWeb开发_Iris框架讲解(一)

    Golang介绍 Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软 ...

  2. GoWeb开发_Iris框架讲解(三):路由功能处理方式

    Context概念 Context是iris框架中的一个路由上下文对象,在iris框架中的源码路径定义为:{$goPath}\github.com\kataras\iris\context\conte ...

  3. GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式

    数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...

  4. 程序员的自我救赎---1.4.3: 核心框架讲解(MVC)

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

  5. go语言web开发框架_Iris框架讲解(六):Session的使用和控制

    在实际的项目开发中,我们会经常有业务场景使用到Session功能.在iris框架中,也为我们提供了方便使用,功能齐全的Session模块.Session模块的源码目录为kataras/iris/ses ...

  6. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...

  7. go语言web开发框架_Iris框架讲解(五):MVC包使用

    在Iris框架中,封装了mvc包作为对mvc架构的支持,方便开发者遵循mvc的开发原则进行开发. iris框架支持请求数据.模型.持久数据分层处理,并支持各层级模块代码绑定执行. MVC即:model ...

  8. go语言web开发框架_Iris框架讲解(五)MVC包使用

    在Iris框架中,封装了mvc包作为对mvc架构的支持,方便开发者遵循mvc的开发原则进行开发. iris框架支持请求数据.模型.持久数据分层处理,并支持各层级模块代码绑定执行. MVC即:model ...

  9. EasyPlayerPro(Windows)流媒体播放器开发之框架讲解

    EasyPlayerPro for Windows是基于ffmpeg进行开发的全功能播放器,开发过程中参考了很多开源的播放器,诸如vlc和ffplay等,其中最强大的莫过于vlc,但是鉴于vlc框架过 ...

随机推荐

  1. Delphi中那些容易混淆的基础

    @.^.Addr.Pointer Delphi(Pascal)中有几个特殊的符号,如@.^等,弄清楚这些符号的运行,首先要明白Delphi指针的一些基础知识:指针,是一个无符号整数(unsigned ...

  2. .dhpcd导致cpu飙升问题

    因公司有业务服务器在阿里云上面,阿里云后台报警说,“有恶意程序在挖矿”,引起了高度重视,于是我登陆服务器进行排查. 登陆云服务器:系统centos7.5 第一步使用top查看资源情况. top 可以清 ...

  3. node.js 安装及配置(hello world)及 node 的包管理器(npm)

    下载地址:Download | Node.js,无脑下一步安装即可: 安装时,会自动将 node 可执行文件路径添加进 Path 内,这样进入 cmd 命令行,以查看 node 的安装版本: > ...

  4. 如果你使用WebView+FloatingActionButton

    在WebView中想要使用FAB,如果你想向上滑动的时候隐藏FAB,那么需要再WebView外面套一个ScrollView! 原因之前也分析过,和为什么ListView不能让ToolBar.Tab隐藏 ...

  5. 常用调试工具gdb,dbx,valgrind介绍一

    类UNIX下C/C++开发,代码调试比较麻烦,最原始的加跟踪调试很土,也很费时,特别是一个庞大的项目,代码行数非常大的时候调试起来非常费劲,当core dump时定位也不容易,这里介绍几个常用工具: ...

  6. noip2017列队(线段树)

    维护一个方阵,支持 1.删掉一个点,剩下的点先向左看齐再向前看齐 2.询问一个位置上是哪个点 $n,m,q \leq 3 \times 10^5$ sol: 我们每行前$m-1$列维护一个线段树,最后 ...

  7. Angular Chart 使用说明(基于angular工程)

    Angular Chart是基于Chart.js的angular组件,引入项目后直接操作数据即可. 引用方法:    分别将Chart.js.angular-chart.js.angular-char ...

  8. bzoj 4537: [Hnoi2016]最小公倍数 分块+并查集

    题目大意: 给定一张n个点m条边的无向图,每条边有两种权.每次询问某两个点之间是否存在一条路径上的边的两种权的最大值分别等于给定值. n,q <= 50000. m <= 100000 题 ...

  9. pytorch 调用forward 的具体流程

    forward方法的具体流程: 以一个Module为例:1. 调用module的call方法2. module的call里面调用module的forward方法3. forward里面如果碰到Modu ...

  10. Windows Touch 便笺簿的

    Windows Touch 便笺簿的 C# 示例 (MTScratchpadWMTouchCS)   本节介绍 Windows Touch 便笺簿的 C# 示例. Windows Touch 便笺簿的 ...