Documentation ¶
Overview ¶
Package config 从配置文件加载 server.Options
Index ¶
- func CheckConfigSyntax[T comparable](configDir, filename string) error
- func Load[T comparable](configDir, filename string) (*server.Options, T, error)
- func NewPrinter(glob string, fsys ...fs.FS) (*localeutil.Printer, error)
- func RegisterCache(b CacheBuilder, name ...string)
- func RegisterCompression(id string, c compressor.Compressor)
- func RegisterFileSerializer(name string, m config.MarshalFunc, u config.UnmarshalFunc, ext ...string)
- func RegisterIDGenerator(id string, b IDGeneratorBuilder)
- func RegisterLogsHandler(b LogsHandlerBuilder, name ...string)
- func RegisterMimetype(m web.MarshalFunc, u web.UnmarshalFunc, name string)
- func RegisterOnRender(f func(int, any) (int, any), name string)
- func RegisterRegistryType(f RegistryTypeBuilder, name string)
- func RegisterRouterMatcher(f RouterMatcherBuilder, name string)
- func RegisterStrategy(f StrategyBuilder, name string)
- type CacheBuilder
- type IDGeneratorBuilder
- type Job
- type LogsHandlerBuilder
- type RegistryTypeBuilder
- type RouterMatcherBuilder
- type StrategyBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckConfigSyntax ¶
func CheckConfigSyntax[T comparable](configDir, filename string) error
CheckConfigSyntax 检测配置项语法是否正确
func Load ¶
func Load[T comparable](configDir, filename string) (*server.Options, T, error)
Load 从配置文件初始化 server.Options 对象
configDir 项目配置文件所在的目录; filename 用于指定项目的配置文件,相对于 configDir 文件系统。 如果此值为空,将返回 &Options{Config: config.Dir(nil, configDir)};
序列化方法由 RegisterFileSerializer 注册的列表中根据 filename 的扩展名进行查找。
T 表示用户自定义的数据项,该数据来自配置文件中的 user 字段。 如果实现了 config.Sanitizer 接口,则在加载后调用该接口;
配置文件 ¶
对于配置文件各个字段的定义,可参考当前目录下的 CONFIG.html。 配置文件中除了固定的字段之外,还提供了泛型变量 User 用于指定用户自定义的额外字段。
注册函数 ¶
当前包提供大量的注册函数,以用将某些无法直接采用序列化的内容转换可序列化的。 比如通过 RegisterCompression 将 `gzip-default` 等字符串表示成压缩算法, 以便在配置文件进行指定。
所有的注册函数处理逻辑上都相似,碰上同名的会覆盖,否则是添加。 且默认情况下都提供了一些可选项,只有在用户需要额外添加自己的内容时才需要调用注册函数。
func NewPrinter ¶
NewPrinter 根据参数指定的配置文件构建一个本地化的打印对象
语言由 localeutil.DetectUserLanguageTag 决定。 fsys 指定了加载本地化文件的文件系统,glob 则指定了加载的文件匹配规则; 对于文件的序列化方式则是根据后缀名从由 RegisterFileSerializer 注册的项中查找。
func RegisterCache ¶
func RegisterCache(b CacheBuilder, name ...string)
RegisterCache 注册新的缓存方式
name 为缓存的名称,这将在配置文件中被引用,如果存在同名,则会覆盖。
func RegisterCompression ¶
func RegisterCompression(id string, c compressor.Compressor)
RegisterCompression 注册压缩方法
id 表示此压缩方法的唯一 ID,这将在配置文件中被引用;
func RegisterFileSerializer ¶
func RegisterFileSerializer(name string, m config.MarshalFunc, u config.UnmarshalFunc, ext ...string)
RegisterFileSerializer 注册用于文件序列化的方法
name 为当前数据的名称,这将在配置文件中被引用,如果存在同名,则会覆盖; ext 为文件的扩展名;
func RegisterIDGenerator ¶
func RegisterIDGenerator(id string, b IDGeneratorBuilder)
RegisterIDGenerator 注册唯一 ID 生成器
id 表示唯一 ID,这将在配置文件中被引用。如果同名会被覆盖;
func RegisterLogsHandler ¶
func RegisterLogsHandler(b LogsHandlerBuilder, name ...string)
RegisterLogsHandler 注册日志的 [LogsWriterBuilder]
name 为缓存的名称,这将在配置文件中被引用,如果存在同名,则会覆盖。
func RegisterMimetype ¶
func RegisterMimetype(m web.MarshalFunc, u web.UnmarshalFunc, name string)
RegisterMimetype 注册用于序列化用户提交数据的方法
name 为名称,这将在配置文件中被引用,如果存在同名,则会覆盖。
func RegisterRegistryType ¶
func RegisterRegistryType(f RegistryTypeBuilder, name string)
func RegisterRouterMatcher ¶
func RegisterRouterMatcher(f RouterMatcherBuilder, name string)
func RegisterStrategy ¶
func RegisterStrategy(f StrategyBuilder, name string)
Types ¶
type LogsHandlerBuilder ¶
LogsHandlerBuilder 构建 logs.Handler 的方法
type RegistryTypeBuilder ¶
RegistryTypeBuilder 生成 registry.Registry 的方法
第一个参数为 web.Cache 类型,如果返回的 registry.Registry 为非 cache 时则第一个参数可以为 nil。
type RouterMatcherBuilder ¶
type RouterMatcherBuilder = func(...string) web.RouterMatcher