Skip to content

设置

对于接口级简化的项目,由于没有自动引入设置,所以需要手动引用设置的初始化函数。

go
package main

import (
	"flag"
	"github.com/uozi-tech/cosy/settings"
)

func main() {
	// 初始化设置
	var confPath string
	flag.StringVar(&confPath, "config", "app.ini", "Specify the configuration file")
	flag.Parse()

	settings.Init(confPath)

    // 其他代码
}

对于项目级简化,则不需要手动初始化。

配置文件格式

Cosy 支持两种配置文件格式:INI 和 TOML。默认情况下使用 INI 格式,但您可以通过构建标签选择使用 TOML 格式。

使用 INI 格式 (默认)

默认情况下,将 app.ini 放在与二进制文件相同的目录中即可。

ini
[app]
PageSize  = 20
JwtSecret = 39B4F75C-8E51-4E9C-87F5-94E40447B0E0

[server]
Host        = 127.0.0.1
Port        = 9000
RunMode     = debug
BaseUrl     = https://api.example.com
EnableHTTPS = false
SSLCert     = /path/to/certificate.pem
SSLKey      = /path/to/key.pem

[database]
User = postgres
Password =
Host = 127.0.0.1
Port = 5432
Name = my-database
TablePrefix = t_

[redis]
Addr = 127.0.0.1:6379
Password =
DB = 0
Prefix = my-prefix

使用 TOML 格式

如果要使用 TOML 格式,需要在构建时添加 toml_settings 标签:

bash
go build -tags toml_settings

然后将 app.toml 放在与二进制文件相同的目录中:

toml
[app]
PageSize = 20
JwtSecret = "39B4F75C-8E51-4E9C-87F5-94E40447B0E0"

[server]
Host = "127.0.0.1"
Port = 9000
RunMode = "debug"
BaseUrl = "https://api.example.com"
EnableHTTPS = false
SSLCert = "/path/to/certificate.pem"
SSLKey = "/path/to/key.pem"

[database]
User = "postgres"
Password = ""
Host = "127.0.0.1"
Port = 5432
Name = "my-database"
TablePrefix = "t_"

[redis]
Addr = "127.0.0.1:6379"
Password = ""
DB = 0
Prefix = "my-prefix"

HTTPS 支持

Cosy 支持 HTTPS,可通过以下配置项启用:

  • EnableHTTPS:是否启用 HTTPS,设置为 true 开启
  • SSLCert:SSL 证书文件路径
  • SSLKey:SSL 密钥文件路径

EnableHTTPS 设置为 true 时,服务器将使用 HTTPS 协议启动,否则使用 HTTP。

对于开发环境,可以使用自签名证书;对于生产环境,建议使用由受信任的证书颁发机构签发的证书。

指定配置文件

如果需要指定不同的配置文件路径,可以使用 -config 参数。

假设有一个二进制文件 main:

bash
# 使用 INI 格式
./main -config app.testing.ini

# 使用 TOML 格式 (如果使用 toml_settings 构建标签)
./main -config app.testing.toml