sk-matrix-project/backend/golang/matrix-middle-service/pkg/config/config.go

63 lines
2.0 KiB
Go
Raw Normal View History

package config
import (
"matrix-middle-service/pkg/config/database"
"matrix-middle-service/pkg/config/jwt"
"matrix-middle-service/pkg/config/nanoid"
"matrix-middle-service/pkg/config/sonyflake"
2023-02-26 21:20:11 +08:00
"matrix-middle-service/pkg/database/driver/mysql/conf"
)
type Conf struct {
Server *ServerConfig `comment:"服务器配置"`
DataSources []interface{} `comment:"数据源配置"`
NanoIdConfig *nanoid.Config `comment:"nanoId 配置"`
JwtConfig *jwt.Config `comment:"jwt 配置"`
SonyFlake *sonyflake.Config `comment:"sonyFlake 配置"`
}
type ServerConfig struct {
Addr string `yaml:"addr" comment:"监听 地址:端口"`
PreFork bool `yaml:"preFork" comment:"是否开启多进程"`
CaseSensitive bool `yaml:"caseSensitive" comment:"路由 大小写严格"`
// 严格路由 例: 设置为 true 时, /foo != /foo/
StrictRouting bool `yaml:"strictRouting" comment:"严格路由模式"`
// 设置 Http 请求头中的 Server 名称
ServerHeader string `yaml:"serverHeader" comment:"服务器名称"`
// 是否添加 /routes 路由 用于获取所有路由信息
EnableRoutesMsg bool `yaml:"enableRoutesMsg" comment:"启用路由信息 /routes"`
EnableSwag bool `yaml:"enableSwag" comment:"是否启用 swag 访问路径: /swagger"`
}
func DefaultConfig() *Conf {
return &Conf{
Server: &ServerConfig{
Addr: ":6573",
PreFork: true,
CaseSensitive: true,
StrictRouting: false,
ServerHeader: "SkServer",
EnableRoutesMsg: false,
},
DataSources: []interface{}{
database.DataSourcesType[any]{
Type: "mysql",
Config: conf.NewMysqlConfig([]string{
"root:12341234@tcp(127.0.0.1:3306)/db?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai",
}, true),
},
},
NanoIdConfig: &nanoid.Config{
Sequence: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
Length: 36,
},
JwtConfig: &jwt.Config{
Secret: "1234567890",
Expire: 7200,
},
SonyFlake: &sonyflake.Config{
StartTime: sonyflake.DefaultSonyFlakeStartTime,
},
}
}