4.4 KiB
4.4 KiB
config.go 与 config.dev.yaml 说明
本文档说明 server/config/config.go 与 server/config/config.dev.yaml 的职责与字段含义,便于理解配置加载逻辑与开发环境配置项。
config.go
用途:
- 定义应用配置结构体(与 YAML 字段一一对应)。
- 提供
LoadConfig()读取并解析配置文件到全局变量AppConfig。
加载逻辑(LoadConfig()):
- 先解析命令行参数
-c或-config指定的配置文件路径。 - 未指定时读取环境变量
GO_ENV,默认dev。 - 按顺序查找配置文件:
config.{env}.yamlconfig/config.{env}.yaml../config/config.{env}.yaml
- 若未找到,回退到
config/config.{env}.yaml以便报错信息准确。 - 读取文件并反序列化到
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 端点与配置中心设置 |
说明:文档仅描述字段用途,未展开敏感值(如密码、密钥等)。如需在文档中补充具体值,请告知需要保留/脱敏的范围。