project-root/
├── cmd/
│ └── server/
│ └── main.go # 程序入口
├── internal/ # 私有应用代码
│ ├── handler/ # HTTP处理器层
│ │ ├── user_handler.go
│ │ ├── auth_handler.go
│ │ ├── role_handler.go
│ │ └── permission_handler.go
│ ├── service/ # 业务逻辑层
│ │ ├── user_service.go
│ │ ├── auth_service.go
│ │ ├── role_service.go
│ │ └── permission_service.go
│ ├── repository/ # 数据访问层
│ │ ├── user_repository.go
│ │ ├── role_repository.go
│ │ └── permission_repository.go
│ ├── model/ # 数据模型
│ │ ├── user.go
│ │ ├── role.go
│ │ ├── permission.go
│ │ └── base.go # 公共字段(ID, CreatedAt等)
│ ├── dto/ # 数据传输对象
│ │ ├── request/
│ │ │ ├── user_request.go
│ │ │ ├── auth_request.go
│ │ │ └── common_request.go # 分页等公共请求
│ │ └── response/
│ │ ├── user_response.go
│ │ ├── auth_response.go
│ │ └── common_response.go # 统一响应格式
│ ├── middleware/ # 中间件
│ │ ├── auth.go # JWT认证
│ │ ├── cors.go # 跨域
│ │ ├── logger.go # 日志
│ │ ├── recovery.go # 异常恢复
│ │ ├── rate_limit.go # 限流
│ │ └── permission.go # 权限校验
│ └── router/ # 路由配置
│ ├── router.go # 主路由
│ ├── api_v1.go # v1版本API路由
│ └── api_v2.go # v2版本API路由(可选)
├── pkg/ # 可被外部应用使用的库
│ ├── jwt/ # JWT工具
│ │ └── jwt.go
│ ├── validator/ # 自定义验证器
│ │ └── validator.go
│ ├── utils/ # 工具函数
│ │ ├── password.go # 密码加密
│ │ ├── string.go
│ │ └── time.go
│ ├── logger/ # 日志封装
│ │ └── logger.go
│ ├── database/ # 数据库连接
│ │ └── mysql.go
│ ├── redis/ # Redis连接(可选)
│ │ └── redis.go
│ └── errors/ # 自定义错误
│ └── errors.go
├── config/ # 配置文件
│ ├── config.go # 配置结构体
│ ├── config.yaml # 开发环境配置
│ ├── config.prod.yaml # 生产环境配置
│ └── config.test.yaml # 测试环境配置
├── migrations/ # 数据库迁移文件
│ ├── 000001_create_users_table.up.sql
│ ├── 000001_create_users_table.down.sql
│ ├── 000002_create_roles_table.up.sql
│ └── 000002_create_roles_table.down.sql
├── scripts/ # 脚本文件
│ ├── build.sh # 编译脚本
│ ├── deploy.sh # 部署脚本
│ └── init_db.sh # 数据库初始化脚本
├── docs/ # 文档
│ ├── api/ # API文档
│ │ └── swagger.yaml
│ └── README.md
├── test/ # 测试文件
│ ├── integration/ # 集成测试
│ └── unit/ # 单元测试
├── deployments/ # 部署相关
│ ├── docker/
│ │ └── Dockerfile
│ ├── kubernetes/
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── docker-compose.yaml
├── logs/ # 日志目录(gitignore)
├── .gitignore
├── .env # 环境变量(gitignore)
├── .env.example # 环境变量示例
├── Makefile # Make命令
├── go.mod
├── go.sum
└── README.md