在實際開發中,咱們一般都是按照模塊進行開發,同一模塊的不一樣接口url每每是最後的一級url不一樣,具備相同的前綴url。所以,咱們指望在後臺開發中,能夠按照模塊來進行處理咱們的請求,對於這種需求,iris框架也是支持的。數據庫
usersRouter := app.Party("/admin", userMiddleware)複製代碼
如上述代碼所示,iris框架中使用app.Party方法來對請求進行分組處理,第二個參數是處理路由組的中間件方法,一般狀況下咱們會在中間件中寫context.Next()方法。編程
在iris框架開發中,初始化應用程序時已經使用了默認的配置值。做爲開發者,咱們能夠不須要其餘額外的配置就啓動咱們的應用程序。 json
若是開發者想要本身根據本身的需求進行配置,iris框架也是支持的,本節課咱們來學習一下iris框架所支持的配置方式。 bash
如今主流的配置文件格式有:xml、yaml、 cnf、toml、json等等格式。xml如今使用的已經很少,cnf格式的配置文件適合數據庫的配置文件,在本節內容中,咱們將帶你們學習多種配置文件的使用方法。服務器
在iris程序的全局app實例中,支持經過多種方式進行代碼配置,途徑是多樣的: app
一、使用app.Configure(iris.WithConfiguration(iris.Configuration{DisableStartuplog:false}))來對總體應用進行配置項配置 框架
二、經過app.Run方法的第二個參數來進行相關的自定義配置項的配置,第二個參數的類型同1一致。 學習
以上兩種方式,不管哪一種方式,都是對app服務應用進行Configuration配置,提供應用配置的Configuration結構體定義所支持的配置項分別爲:字體
DisableInterruptHandler:若是設置爲true,當人爲中斷程序執行時,則不會自動正常將服務器關閉。若是設置爲true,須要本身自定義處理。默認爲false。 url
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是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 是專門用來寫配置文件的語言,寫法簡潔、功能強大,比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框架中如何使用路由組和對應用進行相關的配置的內容,本節課學習的內容咱們在實戰項目中都能可以用到。