598bbd49981083f17737987260318488b4c64082
- 配置增加 ShareCodeMaxPerMac 和 ShareCodeTTLMin 参数 - ShareCodeCache 支持自定义分享码有效期 TTL - 生成分享码时使用配置的 TTL 替代固定30分钟 - 共享码处理添加限制,同一MAC有效分享码数量限制 - 路由层、处理器层和任务调度中增加TTL及限额参数传递 - 同步脚本默认同步路径调整,去除默认同步Docker文件,增加docs目录同步 - 修正上传脚本拼接远程路径时尾部斜杠问题
app-api
基于 Gin 的 Go HTTP API 脚手架。
项目结构
app-api/
├── cmd/server/ # 程序入口
├── internal/
│ ├── config/ # 配置加载
│ ├── handler/ # HTTP 处理器
│ ├── middleware/ # 中间件(日志、CORS、Request ID)
│ ├── response/ # 统一 JSON 响应
│ └── router/ # 路由注册
└── pkg/logger/ # 可复用日志封装
快速开始
环境要求
- Go 1.22+
安装依赖
go mod tidy
配置(可选)
复制环境变量示例:
cp .env.example .env
| 变量 | 默认值 | 说明 |
|---|---|---|
APP_ENV |
development |
运行环境 |
APP_HOST |
0.0.0.0 |
监听地址 |
APP_PORT |
8080 |
监听端口 |
GIN_MODE |
debug |
Gin 运行模式 |
数据库
根据 APP_ENV 自动选择 MySQL 配置;也可通过 DATABASE_* 环境变量完全覆盖。
| 环境 | APP_ENV |
默认连接 |
|---|---|---|
| 开发 | development |
192.168.9.127:3306/audio(可通过 DATABASE_HOST 覆盖),用户 root,密码 root123 |
| 正式 | production |
AWS RDS database-1.chmuueamo72p.eu-central-1.rds.amazonaws.com:3306/audio |
正式环境密码必须通过环境变量 DATABASE_PASSWORD 提供(不要写入代码仓库)。可参考 .env.production.example。
开发环境通过 .env 管理 MySQL / Redis 地址(host 变更时只需改 .env):
DATABASE_HOST=192.168.9.127
DATABASE_PORT=3306
DATABASE_NAME=audio
DATABASE_USER=root
DATABASE_PASSWORD=root123
REDIS_HOST=192.168.9.127
REDIS_PORT=6379
REDIS_DATABASE=1
正式环境启动示例(PowerShell):
$env:APP_ENV = "production"
$env:DATABASE_PASSWORD = "your-production-password"
go run ./cmd/server
运行
make run
# 或
go run ./cmd/server
健康检查
curl http://localhost:8080/api/v1/health
响应示例:
{
"code": 0,
"message": "ok",
"data": {
"status": "up"
}
}
品牌列表
# 查询全部
curl "http://localhost:8080/audio/getBrand"
# 按名称模糊查询
curl "http://localhost:8080/audio/getBrand?brandName=sony"
添加新接口
- 在
internal/handler/新建 handler - 在
internal/router/router.go的/api/v1分组下注册路由 - 使用
internal/response返回统一格式
构建
make build
./bin/server
Description
Languages
Go
92.7%
Shell
6.8%
Makefile
0.3%
Dockerfile
0.2%