GoWeb開發_Iris框架講解(四):Iris框架設定操作

qfDavie發表於2019-03-28

路由組的使用

在實際開發中,我們通常都是按照模組進行開發,同一模組的不同介面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框架中如何使用路由組和對應用進行相關的配置的內容,本節課學習的內容我們在實戰專案中都能能夠用到。


相關文章