phần trước chúng ta đã tìm hiểu về đối số đầu vào đầu tiên của app.Run, phần này chúng ta sẽ xem xét đối số thứ hai là gì.

Hãy bắt đầu từ những điều cơ bản. Hàm iris.New trả về iris.Application. Giá trị Application này có thể được cấu hình thông qua các phương thức Configure(...iris.Configurator) và Run.

Đối số dao động tùy chọn thứ hai của phương thức app.Run chấp nhận một hoặc nhiều iris.Configurator. Một iris.Configurator chỉ là một loại của : func(app *iris.Application). Tùy chỉnh iris.Configurator có thể được thông qua để sửa đổi *iris.Application của bạn.

Có tích hợp iris.Configurator cho từng trường của cấu hình lõi, chẳng hạn như các hàm iris.WithoutStartupLog, iris.WithCharset("UTF-8"), iris.WithOptimizations và iris.WithConfiguration(iris.Configuration{...}) .

Mỗi "module" như iris view engine, websockets, sessions và mỗi phần mềm trung gian có cấu hình và tùy chọn riêng, hầu hết đều tách biệt với cấu hình lõi.

 


 

Sử dụng cấu hình

Cấu trúc cấu hình duy nhất là iris.Configuration. Chúng ta hãy bắt đầu bằng cái có thể truyền vào hàm iris.WithConfiguration để nó trở thành một iris.Configurator.

Tất cả các trường của iris.Configuration được mặc định cho các trường hợp sử dụng phổ biến nhất. Iris không cần cấu hình nào trước app.Run nhưng nếu bạn muốn sử dụng một iris.Configurator tùy chỉnh trước khi máy chủ chạy thì bạn có thể sử dụng phương thức app.Configure để vượt qua (các) bộ cấu hình ở đó.

config := iris.WithConfiguration(iris.Configuration {
  DisableStartupLog: true,
  Optimizations: true,
  Charset: "UTF-8",
})

app.Run(iris.Addr(":8080"), config)

Tải từ YAML

Sử dụng iris.YAML("path").

File: iris.yml

FireMethodNotAllowed: true
DisableBodyConsumptionOnUnmarshal: true
TimeFormat: Mon, 01 Jan 2006 15:04:05 GMT
Charset: UTF-8

File: main.go

config := iris.WithConfiguration(iris.YAML("./iris.yml"))
app.Run(iris.Addr(":8080"), config)

Tải từ TOML

Sử dụng iris.TOML("path").

File: iris.tml

FireMethodNotAllowed = true
DisableBodyConsumptionOnUnmarshal = false
TimeFormat = "Mon, 01 Jan 2006 15:04:05 GMT"
Charset = "UTF-8"

[Other]
    ServerName = "my fancy iris server"
    ServerOwner = "admin@example.com"

File: main.go

config := iris.WithConfiguration(iris.TOML("./iris.tml"))
app.Run(iris.Addr(":8080"), config)

 


 

Sử dụng hàm

Như chúng ta đã đề cập bạn có thể vượt qua bất kỳ số lượng iris.Configurator nào trong đối số thứ hai của app.Run. Iris cung cấp tùy chọn cho từng trường iris.Configuration của nó.

app.Run(iris.Addr(":8080"), iris.WithoutInterruptHandler,
    iris.WithoutServerError(iris.ErrServerClosed),
    iris.WithoutBodyConsumptionOnUnmarshal,
    iris.WithoutAutoFireStatusCode,
    iris.WithOptimizations,
    iris.WithTimeFormat("Mon, 01 Jan 2006 15:04:05 GMT"),
)

Khi bạn muốn thay đổi một số trường của cấu hình. Tiền tố "With" hoặc "Without", các trình soạn thảo mã sẽ giúp bạn điều hướng qua tất cả các tùy chọn cấu hình mà không bị trục trặc đối với tài liệu.

 


 

Giá trị tùy chỉnh

iris.Configuration chứa một trường gọi là Other map[string]interface{} chấp nhận bất kỳ tùy chọn key: value nào, do đó bạn có thể sử dụng trường đó để truyền các giá trị cụ thể mà ứng dụng của bạn mong đợi dựa trên các yêu cầu tùy chình.

app.Run(iris.Addr(":8080"), 
    iris.WithOtherValue("ServerName", "my amazing iris server"),
    iris.WithOtherValue("ServerOwner", "admin@example.com"),
)

 Bạn có thể truy cập các trường đó thông qua app.ConfigurationReadOnly.

serverName := app.ConfigurationReadOnly().Other["MyServerName"]
serverOwner := app.ConfigurationReadOnly().Other["ServerOwner"]

 


 

Cấu hình truy cập từ Context

Trong một trinh xử lý, lấy các trường đó bằng cách sử dụng như sau:

ctx.Application().ConfigurationReadOnly()

Phần tiếp theo chúng ta sẽ tìm hiểu về Routing (điều hướng)