wz-golang-server/docs/config_dev_and_go.md

4.4 KiB
Raw Blame History

config.go 与 config.dev.yaml 说明

本文档说明 server/config/config.goserver/config/config.dev.yaml 的职责与字段含义,便于理解配置加载逻辑与开发环境配置项。

config.go

用途:

  1. 定义应用配置结构体(与 YAML 字段一一对应)。
  2. 提供 LoadConfig() 读取并解析配置文件到全局变量 AppConfig

加载逻辑(LoadConfig()

  1. 先解析命令行参数 -c-config 指定的配置文件路径。
  2. 未指定时读取环境变量 GO_ENV,默认 dev
  3. 按顺序查找配置文件:
    • config.{env}.yaml
    • config/config.{env}.yaml
    • ../config/config.{env}.yaml
  4. 若未找到,回退到 config/config.{env}.yaml 以便报错信息准确。
  5. 读取文件并反序列化到 AppConfig;解析失败会 panic,读取失败会打印提示并保留默认空配置。

结构体与字段说明(与 YAML 对应):

结构体 字段 说明
LogConfig level 日志级别
dir 日志目录
console 是否输出到控制台
ServerConfig port 服务端口
worker_id 雪花算法机器 ID
datacenter_id 雪花算法数据中心 ID
SecurityConfig enable 是否启用签名安全校验
header_key 签名请求头字段名
secret_key 签名密钥
PayloadCryptoConfig enable 请求/响应加密总开关
header_key 加密标记请求头字段名
secret_key 加密密钥
whitelist 白名单路径
request 请求方向加密配置
response 响应方向加密配置
PayloadCryptoDirectionConfig enable 是否启用
required 是否强制
RateLimitConfig enable 是否启用限流
default 默认限流规则
rules 路径级别规则
RateLimitRule interval 时间间隔(秒)
max_requests 最大请求次数
SwaggerConfig user Swagger 登录用户名
password Swagger 登录密码
DatabaseConfig driver 数据库驱动
host 数据库地址
port 数据库端口
database 数据库名
username 用户名
password 密码
charset 字符集
max_idle_conns 空闲连接数
max_open_conns 最大连接数
conn_max_lifetime 连接最大生命周期(小时)
log_mode 是否开启 SQL 日志
RedisConfig addr Redis 地址
password Redis 密码
db Redis DB
WechatConfig mini_program 微信小程序配置
WechatMiniProgramConfig app_id 小程序 AppID
app_secret 小程序密钥
AppVersionConfig app 客户端版本控制
api API 端点配置
webview WebView 端点配置
ttl_seconds 配置缓存秒数
disabled 是否禁用
disable_reason 禁用原因
tenantId 默认租户 ID
AppClientConfig min_version 最低版本
latest_version 最新版本
force_update 是否强制更新
AppEndpointConfig base_url 基础地址
version 接口版本
min_client_version 最低客户端版本
TenantConfig enable 是否启用多租户
header_key 租户请求头字段名
column 租户字段名
tables 启用租户过滤的表

config.dev.yaml

用途:

  • 开发环境配置文件(GO_ENV=dev 默认加载)。
  • 覆盖服务端口、日志、安全、限流、数据库、Redis、微信小程序、客户端版本等参数。

顶层配置项说明:

配置段 作用
server 服务端口与雪花算法机器/数据中心 ID
log 日志级别、目录、控制台输出
security 请求签名安全校验
tenant 多租户开关与租户标识
payload_crypto 请求/响应加密配置
rate_limit 限流开关与规则
swagger Swagger 文档访问账号
database 数据库连接与连接池配置
redis Redis 连接配置
wechat 微信小程序配置
app_config 客户端版本、API/WebView 端点与配置中心设置

说明:文档仅描述字段用途,未展开敏感值(如密码、密钥等)。如需在文档中补充具体值,请告知需要保留/脱敏的范围。