configstc

package
v0.0.0-...-f282eec Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

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

func ParseConfigPath

func ParseConfigPath(s ...string) string

ParseConfigPath 默认的config path获取

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

type CommonExtendParams map[string]string

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 日志配置

func DefiLogConfig

func DefiLogConfig() *LogConfig

DefiLogConfig 默认日志配置

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 服务配置

func (ServerConfig) HostAddr

func (c ServerConfig) HostAddr() string

HostAddr 域名访问地址

func (ServerConfig) ListenAddr

func (c ServerConfig) ListenAddr() string

ListenAddr 服务监听地址

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配置

Jump to

Keyboard shortcuts

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