Documentation ¶
Index ¶
- Constants
- Variables
- func LoadConfig[T interface{}](c *T, s ...string) *T
- func ParseConfigPath(s ...string) string
- type AccessKeyConfig
- type AuthConfig
- type BaseDataAppConfig
- type CommonExtendParams
- func (op CommonExtendParams) ExtendParamByBool(k string, def ...bool) bool
- func (op CommonExtendParams) ExtendParamByFloat(k string, def ...float64) float64
- func (op CommonExtendParams) ExtendParamByInt(k string, def ...int) int
- func (op CommonExtendParams) ExtendParamValue(key string, def ...string) string
- type DBConfig
- type EmailConfig
- type LimitingConfig
- type LogConfig
- type MonitorReportConfig
- type PProfConfig
- type ProxyRule
- type ServerConfig
- type ThirdConfig
- type UserAppConfig
- type WebAppConfig
- type WebHookConfig
Constants ¶
View Source
const ( ProxyModePrefix = "prefix" //前缀替换,匹配并替换指定前缀 ProxyModeFix = "fixed" //固定地址,完全匹配路由进行转发 )
Variables ¶
View Source
var DefiConfigPath = ParseConfigPath
Functions ¶
func LoadConfig ¶
func LoadConfig[T interface{}](c *T, s ...string) *T
Types ¶
type AccessKeyConfig ¶
type AccessKeyConfig struct { AccessKey string `json:"AccessKey" yaml:"AccessKey"` // appKey AccessSecret string `json:"AccessSecret" yaml:"AccessSecret"` //appSecret }
AccessKeyConfig 常用的accessKey配置
type AuthConfig ¶
type AuthConfig struct { Enable bool `json:"Enable" yaml:"Enable"` //是否启用 SecretKey string `json:"SecretKey" yaml:"SecretKey"` //加密秘钥,如JWT AuthExpired int64 `json:"AuthExpired" yaml:"AuthExpired"` //授权失效时间,单位:秒 }
AuthConfig 授权配置
type BaseDataAppConfig ¶
type BaseDataAppConfig struct { Name string `json:"Name" yaml:"Name"` ApiServer ServerConfig `json:"ApiServer" yaml:"ApiServer"` //日志路径 LogPath string `json:"LogPath" yaml:"LogPath"` LogLevel string `json:"LogLevel" yaml:"LogLevel"` //debug开关 Debug bool `json:"Debug" yaml:"Debug"` //路由前缀 RoutePrefix string `json:"RoutePrefix" yaml:"RoutePrefix"` //路由前缀 }
type CommonExtendParams ¶
func (CommonExtendParams) ExtendParamByBool ¶
func (op CommonExtendParams) ExtendParamByBool(k string, def ...bool) bool
ExtendParamByBool 返回extendParam指定k的bool类型值
func (CommonExtendParams) ExtendParamByFloat ¶
func (op CommonExtendParams) ExtendParamByFloat(k string, def ...float64) float64
ExtendParamByFloat 返回extendParam指定k的float类型值
func (CommonExtendParams) ExtendParamByInt ¶
func (op CommonExtendParams) ExtendParamByInt(k string, def ...int) int
ExtendParamByInt 返回extendParam指定k的int类型值
func (CommonExtendParams) ExtendParamValue ¶
func (op CommonExtendParams) ExtendParamValue(key string, def ...string) string
type DBConfig ¶
type DBConfig struct { DbDsn string `json:"DbDsn" yaml:"DbDsn"` //数据库dsn DbConn string `json:"DbConn" yaml:"DbConn"` //数据库类型,如mysql DbHost string `json:"DbHost" yaml:"DbHost"` //数据库地址 DbPort string `json:"DbPort" yaml:"DbPort"` //端口 DbUser string `json:"DbUser" yaml:"DbUser"` //用户名 DbPassword string `json:"DbPassword" yaml:"DbPassword"` //密码 DbName string `json:"DbName" yaml:"DbName"` //数据库 MaxIdleConn int `default:"0" json:"MaxIdleConn" yaml:"MaxIdleConn"` //预留并发链接数 MaxOpenConn int `default:"0" json:"MaxOpenConn" yaml:"MaxOpenConn"` //最大支持链接 MaxLifeTime int `default:"0" json:"ConnMaxLifeTime" yaml:"ConnMaxLifeTime"` //每个链接最大生存时间 MaxIdleTime int `default:"0" json:"ConnMaxIdleTime" yaml:"ConnMaxIdleTime"` //每个链接最大空闲时间 MaxConcatLen string `default:"" json:"MaxConcatLen" yaml:"MaxConcatLen"` TablePrefix string `json:"TablePrefix" yaml:"TablePrefix"` //表前缀 TimeZone string `json:"TimeZone" yaml:"TimeZone"` //时区设置 }
DBConfig 数据库配置
type EmailConfig ¶
type EmailConfig struct { Enable bool `json:"Enable" yaml:"Enable"` SmtpName string `json:"SmtpName" yaml:"SmtpName"` //smtp 发送名称 SmtpHost string `json:"SmtpHost" yaml:"SmtpHost"` //smtp服务host SmtpPort int `json:"SmtpPort" yaml:"SmtpPort"` //smtp服务端口 SmtpUserName string `json:"SmtpUserName" yaml:"SmtpUserName"` //smtp用户名 SmtpPassword string `json:"SmtpPassword" yaml:"SmtpPassword"` //smtp密码 }
EmailConfig 邮箱配置
type LimitingConfig ¶
type LimitingConfig struct { PerRate int `json:"PerRate" yaml:"PerRate"` //每次(秒)速率 MaxRate int `json:"MaxRate" yaml:"MaxRate"` //允许的最大速率 }
LimitingConfig 限流配置
type LogConfig ¶
type LogConfig struct { //日志路径 LPath string `default:"./runtime/logs/app.log" yaml:"LPath"` //是否包含文件路径 // 0: 不包含,1:短文件名,2:完整路径 LFilepath int `default:"0" yaml:"LFilepath"` //日志等级,与LogLevel一致 LLevel string `default:"debug" yaml:"LLoglevel"` //对应 runtime.Caller LCallerSkip int `default:"0" yaml:"LCallerSkip"` // contains filtered or unexported fields }
LogConfig 日志配置
type MonitorReportConfig ¶
type MonitorReportConfig struct { Platform string `json:"Platform" yaml:"Platform"` //上报平台,prometheus/prometheus_push/aws/aliyun Host string `json:"Host" yaml:"Host"` //上报地址,使用prometheus时为本地启动http地址如: :9090 Name string `json:"Name" yaml:"Name"` //名称,推送的指标名称 Namespace string `json:"Namespace" yaml:"Namespace"` //推送指标的命名空间 }
MonitorReportConfig 监控(上报)配置
type PProfConfig ¶
type PProfConfig struct { Enable bool `json:"Enable" yaml:"Enable"` Port int64 `json:"Port" yaml:"Port"` //用于pprof的端口号,如: 8808 }
PProfConfig webhook配置
type ProxyRule ¶
type ProxyRule struct { Mode string `json:"Mode" yaml:"Mode"` //转发模式 Match string `json:"Match" yaml:"Match"` //匹配模式,见下面的 ProxyModePrefix/ProxyModeFix Forward string `json:"Forward" yaml:"Forward"` //转发目标 Replace string `json:"Replace" yaml:"Replace"` //替换前缀 }
ProxyRule 转发规则
type ServerConfig ¶
type ServerConfig struct { ServerBindAddr string `json:"ServerBindAddr" yaml:"ServerBindAddr"` //ListenAndServe to bind to, such as 0.0.0.0 Port int `json:"Port" yaml:"Port"` //端口 Host string `json:"Host" yaml:"Host"` // Host is the hostname or IP address of the service. Timeout int `json:"Timeout" yaml:"Timeout"` //Timeout specifies a timeout (in milliseconds) AllowOrigins []string `json:"AllowOrigins"` //指定跨域允许访问源,空则为不限制访问 }
ServerConfig 服务配置
type ThirdConfig ¶
type ThirdConfig struct { Enable bool `json:"Enable" yaml:"Enable"` //是否启用第三方 AppKey string `json:"AppKey" yaml:"AppKey"` // app id/key AppSecret string `json:"AppSecret" yaml:"AppSecret"` //appSecret //扩展参数,微信: EncodingAESKey ExtendParams CommonExtendParams `json:"ExtendParams" yaml:"ExtendParams"` //扩展其他参数 }
ThirdConfig 第三方配置
type UserAppConfig ¶
type UserAppConfig struct { Name string `json:"Name" yaml:"Name"` ApiServer ServerConfig `json:"ApiServer" yaml:"ApiServer"` //日志路径 LogPath string `json:"LogPath" yaml:"LogPath"` LogLevel string `json:"LogLevel" yaml:"LogLevel"` //debug开关 Debug bool `json:"Debug" yaml:"Debug"` AuthConfig AuthConfig `json:"AuthConfig" yaml:"AuthConfig"` //授权配置 DBConfig DBConfig `json:"DBConfig" yaml:"DBConfig"` //数据库配置 EmailConfig EmailConfig `json:"EmailConfig" yaml:"EmailConfig"` //邮件配置 LimitingApi LimitingConfig `json:"LimitingApi" yaml:"LimitingApi"` //api限流 //路由前缀 RoutePrefix string `json:"RoutePrefix" yaml:"RoutePrefix"` //路由前缀 WechatAuth ThirdConfig `json:"WechatAuth" yaml:"WechatAuth"` //微信配置 SmsConfig ThirdConfig `json:"SmsConfig" yaml:"SmsConfig"` //短信配置,目前使用阿里云 //是否启用文档 DocsEnable bool `json:"DocsEnable" yaml:"DocsEnable"` //是否启用pprof PProfEnable bool `json:"PProfEnable" yaml:"PProfEnable"` PasswordSalt string `json:"PasswordSalt" yaml:"PasswordSalt"` //密码salt }
type WebAppConfig ¶
type WebAppConfig struct { Name string `json:"Name" yaml:"Name"` WebServer ServerConfig `json:"WebServer" yaml:"WebServer"` //web服务器配置 //支持静态文件 StaticPath string `json:"StaticPath" yaml:"StaticPath"` //静态文件路径,支持静态html等 StaticRouter string `json:"StaticRouter" yaml:"StaticRouter"` //静态路由前缀 TemplatePath string `json:"TemplatePath" yaml:"TemplatePath"` //模板文件路径,按html/template解析 TemplateRouter string `json:"TemplateRouter" yaml:"TemplateRouter"` //模板访问的路由前缀 //日志路径 LogPath string `json:"LogPath" yaml:"LogPath"` LogLevel string `json:"LogLevel" yaml:"LogLevel"` //路由前缀 RoutePrefix string `json:"RoutePrefix" yaml:"RoutePrefix"` //路由前缀 //支持转发功能 ProxyRules []ProxyRule `json:"ProxyRules" yaml:"ProxyRules"` //转发配置列表, }
type WebHookConfig ¶
type WebHookConfig struct { Url string `json:"Url" yaml:"Url"` AccessToken string `json:"AccessToken" yaml:"AccessToken"` //部分应用需要放header中 }
WebHookConfig webhook配置
Click to show internal directories.
Click to hide internal directories.