GoWeb開發(fā)_Iris框架講解(四):Iris框架設(shè)置操作

路由組的使用

在實際開發(fā)中,我們通常都是按照模塊進行開發(fā),同一模塊的不同接口url往往是最后的一級url不同,具有相同的前綴url。因此,我們期望在后臺開發(fā)中,可以按照模塊來進行處理我們的請求,對于這種需求,iris框架也是支持的。

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

如上述代碼所示,iris框架中使用app.Party方法來對請求進行分組處理,第二個參數(shù)是處理路由組的中間件方法,通常情況下我們會在中間件中寫context.Next()方法。

應用程序內(nèi)代碼配置

在iris框架開發(fā)中,初始化應用程序時已經(jīng)使用了默認的配置值。作為開發(fā)者,我們可以不需要其他額外的配置就啟動我們的應用程序。?

如果開發(fā)者想要自己根據(jù)自己的需求進行配置,iris框架也是支持的,本節(jié)課我們來學習一下iris框架所支持的配置方式。?

現(xiàn)在主流的配置文件格式有:xml、yaml、 cnf、toml、json等等格式。xml現(xiàn)在使用的已經(jīng)不多,cnf格式的配置文件適合數(shù)據(jù)庫的配置文件,在本節(jié)內(nèi)容中,我們將帶大家學習多種配置文件的使用方法。

在iris程序的全局app實例中,支持通過多種方式進行代碼配置,途徑是多樣的:?

1、使用app.Configure(iris.WithConfiguration(iris.Configuration{DisableStartuplog:false}))來對整體應用進行配置項配置?

2、通過app.Run方法的第二個參數(shù)來進行相關(guān)的自定義配置項的配置,第二個參數(shù)的類型同1一致。?

以上兩種方式,無論哪種方式,都是對app服務應用進行Configuration配置,提供應用配置的Configuration結(jié)構(gòu)體定義所支持的配置項分別為:

DisableInterruptHandler:如果設(shè)置為true,當人為中斷程序執(zhí)行時,則不會自動正常將服務器關(guān)閉。如果設(shè)置為true,需要自己自定義處理。默認為false。?

DisablePathCorrection: 該配置項表示更正并將請求的路徑重定向到已注冊的路徑。比如:如果請求/home/ 但找不到此Route的處理程序,然后路由器檢查/home處理程序是否存在,如果是,(permant)將客戶端重定向到正確的路徑/home。默認為false。

EnablePathEscape:該配置選項用于配置是否支持路徑轉(zhuǎn)義。適用于請求url中包含轉(zhuǎn)義字符時進行配置。默認為false。?

FireMethodNotAllowed: 默認為false。

DisableBodyConsumptionOnUnmarshal:該設(shè)置選項用于配置讀取請求數(shù)據(jù)的方法是否使用,如果設(shè)置為true,則表示禁用context.UnmarshalBody,context. ReadJSON以及context.ReadXML。默認為false。

DisableAutoFireStatusCode:該配置變量為控制是否處理錯誤自動執(zhí)行,如果為true,則不會進行錯誤自動執(zhí)行。該配置項默認為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年創(chuàng)建的語言,其目標是成為一個小規(guī)模的易于使用的語義化配置文件格式。TOML被設(shè)計為可以無二義性的轉(zhuǎn)換為一個哈希表(Hash table)。?

具體的項目配置使用中,我們需要創(chuàng)建config.tml類型的配置文件,并在程序中明確使用toml文件進行讀取配置內(nèi)容。如下圖所所示:?

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

通過YAML配置文件?

YAML 是專門用來寫配置文件的語言,寫法簡潔、功能強大,比JSON格式還要方便。Yaml實質(zhì)上是一種通用的數(shù)據(jù)串行化格式。Yaml的主要語法格式有以下幾項:?

大小寫敏感。

使用縮進表示層級關(guān)系。

縮進時不允許使用Tab鍵,只允許使用空格。

縮進的空格數(shù)目不受限制,相同層級的配置元素 左側(cè)對齊即可。?

在本節(jié)內(nèi)容中,我們可以通過yaml配置文件來對應用進行簡單選項的的配置:?

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

通過讀取自定義配置文件

這里我們給大家演示如何使用json格式的配置文件來進行應用的配置,然后從應用程序中進行讀取。?

首先創(chuàng)建json格式的配置文件,并編寫配置項,如下圖:?

{

? "appname": "IrisDemo",

? "port": 8000

}

在應用程序內(nèi),編程實現(xiàn)對配置文件的讀取和解析,如下圖:?

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)

本節(jié)課我們帶大家學習了在iris框架中如何使用路由組和對應用進行相關(guān)的配置的內(nèi)容,本節(jié)課學習的內(nèi)容我們在實戰(zhàn)項目中都能能夠用到。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • ESLint 配置 ESlint 被設(shè)計為完全可配置的,這意味著你可以關(guān)閉每一個規(guī)則而只運行基本語法驗證,或混合和...
    靜默虛空閱讀 41,853評論 3 14
  • 原文鏈接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao閱讀 4,898評論 0 9
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,339評論 0 10
  • 要加“m”說明是MB,否則就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms8...
    dadong0505閱讀 5,070評論 0 53
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,985評論 0 9

友情鏈接更多精彩內(nèi)容