config

package
v1.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2024 License: MIT Imports: 4 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetLogMode

func GetLogMode(logMode string) logger.LogLevel

Types

type AccessLimit

type AccessLimit struct {
	Enable   bool          `mapstructure:"enable" json:"enable" yaml:"enable"`       //是否启用
	Duration time.Duration `mapstructure:"duration" json:"duration" yaml:"duration"` //时长周期
	Total    int           `mapstructure:"total" json:"total" yaml:"total"`          //周期内最大访问次数,超过拒绝
}

func (*AccessLimit) GetDuration

func (s *AccessLimit) GetDuration() time.Duration

func (*AccessLimit) GetTotal

func (s *AccessLimit) GetTotal() int

type AppCfg

type AppCfg struct {
	Server      ServerCfg     `mapstructure:"server" json:"server" yaml:"server"`                   //服务器配置
	Remote      RemoteCfg     `mapstructure:"remote" json:"remote" yaml:"remote"`                   //远程配置
	Logger      LogCfg        `mapstructure:"logger" json:"logger" yaml:"logger"`                   //log配置
	JWT         JWT           `mapstructure:"jwt" json:"jwt" yaml:"jwt"`                            //jwt配置
	DBCfg       DBCfg         `mapstructure:"dbcfg" json:"dbcfg" yaml:"dbcfg"`                      // 数据库配置
	Cache       CacheCfg      `mapstructure:"cache" json:"cache" yaml:"cache"`                      // 缓存
	Cors        CORS          `mapstructure:"cors" json:"cors" yaml:"cors"`                         //cors配置
	Extends     any           `mapstructure:"extend" json:"extend" yaml:"extend"`                   //扩展配置
	Gen         GenCfg        `mapstructure:"gen" json:"gen" yaml:"gen"`                            //是否可生成
	GrpcServer  GrpcServerCfg `mapstructure:"grpc-server" json:"grpc-server" yaml:"grpc-server"`    //grpc服务配置
	AccessLimit AccessLimit   `mapstructure:"access-limit" json:"access-limit" yaml:"access-limit"` //访问限制配置
}

type CORS

type CORS struct {
	Enable    bool            `mapstructure:"enable" json:"enable" yaml:"enable"`
	Mode      string          `mapstructure:"mode" json:"mode" yaml:"mode"`
	Whitelist []CORSWhitelist `mapstructure:"whitelist" json:"whitelist" yaml:"whitelist"`
}

type CORSWhitelist

type CORSWhitelist struct {
	AllowOrigin      string `mapstructure:"allow-origin" json:"allow-origin" yaml:"allow-origin"`
	AllowMethods     string `mapstructure:"allow-methods" json:"allow-methods" yaml:"allow-methods"`
	AllowHeaders     string `mapstructure:"allow-headers" json:"allow-headers" yaml:"allow-headers"`
	ExposeHeaders    string `mapstructure:"expose-headers" json:"expose-headers" yaml:"expose-headers"`
	AllowCredentials bool   `mapstructure:"allow-credentials" json:"allow-credentials" yaml:"allow-credentials"`
}

type CacheCfg

type CacheCfg struct {
	Type       string `mapstructure:"type" json:"type" yaml:"type"`
	Addr       string `mapstructure:"addr" json:"addr" yaml:"addr"`
	Password   string `mapstructure:"password" json:"password" yaml:"password"`
	DB         int    `mapstructure:"db" json:"db" yaml:"db"`
	Prefix     string `mapstructure:"prefix" json:"prefix" yaml:"prefix"`
	MasterName string `mapstructure:"master-name" json:"master-name" yaml:"master-name"`
}

func (*CacheCfg) GetType

func (c *CacheCfg) GetType() string

type Config

type Config struct {
	Enable      bool             `mapstructure:"enable" json:"enable" yaml:"enable"`
	Driver      string           `mapstructure:"driver" json:"driver" yaml:"driver"`
	Endpoints   []string         `mapstructure:"endpoints" json:"endpoints" yaml:"endpoints"`
	Scheme      string           `mapstructure:"scheme" json:"scheme" yaml:"scheme"`
	Timeout     time.Duration    `mapstructure:"timeout" json:"timeout" yaml:"timeout"`
	Registers   []*RegisterNode  `mapstructure:"registers" json:"registers" yaml:"registers"`
	Discoveries []*DiscoveryNode `mapstructure:"discoveries" json:"discoveries" yaml:"discoveries"`
}

type DB

type DB struct {
	DSN            string `mapstructure:"dsn" json:"dsn" yaml:"dsn"`                                        //连接参数
	Disable        bool   `mapstructure:"disable" json:"disable" yaml:"disable"`                            //是否启用 默认true
	Driver         string `mapstructure:"driver" json:"driver" yaml:"driver"`                               //数据库类型
	Prefix         string `mapstructure:"prefix" json:"prefix" yaml:"prefix"`                               //全局表前缀,单独定义TableName则不生效
	MaxIdleConn    int    `mapstructure:"max-idle-conn" json:"max-idle-conn" yaml:"max-idle-conn"`          // 空闲中的最大连接数
	MaxOpenConn    int    `mapstructure:"max-open-conn" json:"max-open-conn" yaml:"max-open-conn"`          // 打开到数据库的最大连接数
	MaxLifetime    int    `mapstructure:"max-lifetime" json:"max-lifetime" yaml:"max-lifetime"`             // 链接重置时间(分)
	LogMode        string `mapstructure:"log-mode" json:"log-mode" yaml:"log-mode"`                         // Gorm日志级别: silent、error、warn、info
	IgnoreNotFound bool   `mapstructure:"ignore-not-found" json:"ignore-not-found" yaml:"ignore-not-found"` //忽略无记录错误
	SlowThreshold  int    `mapstructure:"slow-threshold" json:"slow-threshold" yaml:"slow-threshold"`       // 慢查询 毫秒 大于0有效
}

type DBCfg

type DBCfg struct {
	DSN            string        `mapstructure:"dsn" json:"dsn" yaml:"dsn"`                                        //连接参数
	Driver         string        `mapstructure:"driver" json:"driver" yaml:"driver"`                               //数据库类型
	Prefix         string        `mapstructure:"prefix" json:"prefix" yaml:"prefix"`                               //全局表前缀,单独定义TableName则不生效
	Singular       bool          `mapstructure:"singular" json:"singular" yaml:"singular"`                         //是否开启全局禁用复数,true表示开启
	MaxIdleConns   int           `mapstructure:"max-idle-conn" json:"max-idle-conn" yaml:"max-idle-conn"`          // 空闲中的最大连接数
	MaxOpenConns   int           `mapstructure:"max-open-conn" json:"max-open-conn" yaml:"max-open-conn"`          // 打开到数据库的最大连接数
	MaxLifetime    int           `mapstructure:"max-lifetime" json:"max-lifetime" yaml:"max-lifetime"`             // 链接重置时间(分)
	LogMode        string        `mapstructure:"log-mode" json:"log-mode" yaml:"log-mode"`                         // Gorm日志级别: silent、error、warn、info
	SlowThreshold  int           `mapstructure:"slow-threshold" json:"slow-threshold" yaml:"slow-threshold"`       // 慢查询 毫秒 大于0有效
	IgnoreNotFound bool          `mapstructure:"ignore-not-found" json:"ignore-not-found" yaml:"ignore-not-found"` //忽略无记录错误
	DBS            map[string]DB `mapstructure:"dbs" json:"dbs" yaml:"dbs"`                                        //配置多db
}

func (*DBCfg) GetDSN

func (c *DBCfg) GetDSN(dbname string) string

func (*DBCfg) GetDriver

func (c *DBCfg) GetDriver(dbname string) string

func (*DBCfg) GetMaxIdleConn

func (c *DBCfg) GetMaxIdleConn() int

func (*DBCfg) GetMaxLifetime

func (c *DBCfg) GetMaxLifetime() int

func (*DBCfg) GetMaxOpenConn

func (c *DBCfg) GetMaxOpenConn() int

type DiscoveryNode

type DiscoveryNode struct {
	Enable              bool   `mapstructure:"enable" json:"enable" yaml:"enable"`                                           //启用发现
	Namespace           string `mapstructure:"namespace" json:"namespace" yaml:"namespace"`                                  //命名空间
	Name                string `mapstructure:"name" json:"name" yaml:"name"`                                                 //服务名
	Tag                 string `mapstructure:"tag" json:"tag" yaml:"tag"`                                                    //标签
	SchedulingAlgorithm string `mapstructure:"scheduling-algorithm" json:"scheduling-algorithm" yaml:"scheduling-algorithm"` //调度算法
	FailLimit           int    `mapstructure:"fail-limit" json:"fail-limit" yaml:"fail-limit"`                               //已发现服务最大失败数
	RetryTime           int    `mapstructure:"retry-time" json:"retry-time" yaml:"retry-time"`                               //重试时间间隔 秒
}

type GenCfg

type GenCfg struct {
	Enable    bool   `mapstructure:"enable" json:"enable" yaml:"ebable"`             // 开启生成
	FrontPath string `mapstructure:"front-path" json:"front-path" yaml:"front-path"` // 前端路径
}

type GrpcServerCfg

type GrpcServerCfg struct {
	Enable bool   `mapstructure:"enable" json:"enable" yaml:"enable"` //启用Grpc服务
	Name   string `mapstructure:"name" json:"name" yaml:"name"`       //服务名,不设置默认为ServerName+"_grpc"
	Host   string `mapstructure:"host" json:"host" yaml:"host"`       //启动host
	Port   int    `mapstructure:"port" json:"port" yaml:"port"`       //端口
}

func (*GrpcServerCfg) GetHost

func (e *GrpcServerCfg) GetHost() string

func (*GrpcServerCfg) GetPort

func (e *GrpcServerCfg) GetPort() int

type JWT

type JWT struct {
	SignKey string `mapstructure:"sign-key" json:"sign-key" yaml:"sign-key"` // jwt签名
	Expires int    `mapstructure:"expires" json:"expires" yaml:"expires"`    // 有效时长 分钟
	Refresh int    `mapstructure:"refresh" json:"refresh" yaml:"refresh"`    // 刷新时长
	Issuer  string `mapstructure:"issuer" json:"issuer" yaml:"issuer"`       // 签发人
	Subject string `mapstructure:"subject" json:"subject" yaml:"subject"`    // 签发主体
}

type LogCfg

type LogCfg struct {
	Level        string `mapstructure:"level" json:"level" yaml:"level"`                            // 级别
	Prefix       string `mapstructure:"prefix" json:"prefix" yaml:"prefix"`                         // 日志前缀
	Format       string `mapstructure:"format" json:"format" yaml:"format"`                         // 输出
	Director     string `mapstructure:"director" json:"director"  yaml:"director"`                  // 日志文件夹
	MaxAge       int    `mapstructure:"max-age" json:"max-age" yaml:"max-age"`                      // 日志留存时间 天
	MaxSize      int    `mapstructure:"max-size" json:"max-size" yaml:"max-size"`                   // 日志文件大小
	MaxBackups   int    `mapstructure:"max-backups" json:"max-backups" yaml:"max-backups"`          // 日志备份天数
	LogInConsole bool   `mapstructure:"log-in-console" json:"log-in-console" yaml:"log-in-console"` // 输出控制台
	EncodeLevel  string `mapstructure:"encode-level" json:"encode-level" yaml:"encode-level"`       // 编码级

}

func (*LogCfg) Color

func (z *LogCfg) Color() bool

func (*LogCfg) GetMaxAge

func (z *LogCfg) GetMaxAge() int

func (*LogCfg) GetMaxBackups

func (z *LogCfg) GetMaxBackups() int

func (*LogCfg) GetMaxSize

func (z *LogCfg) GetMaxSize() int

type RegisterNode

type RegisterNode struct {
	Namespace   string        `mapstructure:"namespace" json:"namespace" yaml:"namespace"`          //命名空间
	Id          string        `mapstructure:"id" json:"id" yaml:"id"`                               //服务id
	Name        string        `mapstructure:"name" json:"name" yaml:"name"`                         //服务名
	Addr        string        `mapstructure:"addr" json:"addr" yaml:"addr"`                         //服务地址
	Port        int           `mapstructure:"port" json:"port" yaml:"port"`                         //端口
	Protocol    string        `mapstructure:"protocol" json:"protocol" yaml:"protocol"`             //协议
	Weight      int           `mapstructure:"weight" json:"weight" yaml:"weight"`                   //权重
	Interval    time.Duration `mapstructure:"interval" json:"interval" yaml:"interval"`             //检测间隔
	Timeout     time.Duration `mapstructure:"timeout" json:"timeout" yaml:"timeout"`                //服务检测超时时间
	HealthCheck string        `mapstructure:"health-check" json:"health-check" yaml:"health-check"` //健康检查地址
	Tags        []string      `mapstructure:"tags" json:"tags" yaml:"tags"`                         //标签
	FailLimit   int           `mapstructure:"fail-limit" json:"fail-limit" yaml:"fail-limit"`       //失败次数限制,到达失败次数就会被禁用
}

type RemoteCfg

type RemoteCfg struct {
	Provider      string `mapstructure:"provider" json:"provider" yaml:"provider"`                   //提供方
	Endpoint      string `mapstructure:"endpoint" json:"endpoint" yaml:"endpoint"`                   //端点
	Path          string `mapstructure:"path" json:"path" yaml:"path"`                               //路径
	SecretKeyring string `mapstructure:"secret-keyring" json:"secret-keyring" yaml:"secret-keyring"` //安全
	ConfigType    string `mapstructure:"config-type" json:"config-type" yaml:"config-type"`          //配置类型
}

func (*RemoteCfg) GetConfigType

func (e *RemoteCfg) GetConfigType() string

type ServerCfg

type ServerCfg struct {
	Name         string `mapstructure:"name" json:"name" yaml:"name"`                            //appname
	RemoteEnable bool   `mapstructure:"remote-enable" json:"remote-enable" yaml:"remote-enable"` //是否开启远程配置
	Mode         string `mapstructure:"mode" json:"mode" yaml:"mode"`                            //模式
	Host         string `mapstructure:"host" json:"host" yaml:"host"`                            //启动host
	Port         int    `mapstructure:"port" json:"port" yaml:"port"`                            //端口
	ReadTimeout  int    `mapstructure:"read-timeout" json:"read-timeout" yaml:"read-timeout"`    //读超时 单位秒
	WriteTimeout int    `mapstructure:"write-timeout" json:"write-timeout" yaml:"write-timeout"` //写超时 单位秒
	FSType       string `mapstructure:"fs-type" json:"fs-type" yaml:"fs-type"`                   //文件系统
	I18n         bool   `mapstructure:"i18n" json:"i18n" yaml:"i18n"`                            //是否开启多语言
	Lang         string `mapstructure:"lang" json:"lang" yaml:"lang"`                            //默认语言
	CloseWait    int    `mapstructure:"close-wait" json:"close-wait" yaml:"close-wait"`          //服务关闭等待 秒
}

func (*ServerCfg) GetCloseWait

func (e *ServerCfg) GetCloseWait() int

func (*ServerCfg) GetHost

func (e *ServerCfg) GetHost() string

func (*ServerCfg) GetLang

func (e *ServerCfg) GetLang() string

func (*ServerCfg) GetPort

func (e *ServerCfg) GetPort() int

func (*ServerCfg) GetReadTimeout

func (e *ServerCfg) GetReadTimeout() int

func (*ServerCfg) GetWriteTimeout

func (e *ServerCfg) GetWriteTimeout() int

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL