# go-development-process **Repository Path**: shgzhou/go-development-journey ## Basic Information - **Project Name**: go-development-process - **Description**: go 语言开发技巧 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-31 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gin API Server 基于Go语言和Gin框架开发的REST API服务器,提供用户管理、身份验证和完整的CRUD操作功能。 ## 功能特性 - 🚀 基于Gin框架的高性能HTTP服务器 - 🔐 JWT身份验证和授权 - 📊 用户管理CRUD操作 - 🗄️ 支持MySQL和PostgreSQL数据库 - 📝 结构化日志记录 - 🐳 Docker容器化支持 - 🔧 灵活的配置管理 - 🧪 完整的测试覆盖 - 📈 性能监控和健康检查 ## 项目结构 ``` gin-api-server/ ├── cmd/ # 应用程序入口 │ └── server/ │ └── main.go ├── internal/ # 内部包 │ ├── config/ # 配置管理 │ ├── handler/ # HTTP处理器 │ ├── service/ # 业务逻辑层 │ ├── repository/ # 数据访问层 │ ├── model/ # 数据模型 │ ├── middleware/ # 中间件 │ └── database/ # 数据库连接 ├── pkg/ # 公共包 │ ├── logger/ # 日志器 │ ├── validator/ # 验证器 │ └── jwt/ # JWT工具 ├── configs/ # 配置文件 ├── migrations/ # 数据库迁移 ├── tests/ # 测试文件 ├── docker/ # Docker配置 ├── Makefile # 构建脚本 ├── Dockerfile # Docker镜像 └── docker-compose.yml # Docker编排 ``` ## 快速开始 ### 环境要求 - Go 1.21+ - MySQL 8.0+ 或 PostgreSQL 13+ - Docker (可选) ### 本地开发 1. 克隆项目 ```bash git clone cd gin-api-server ``` 2. 安装依赖 ```bash make deps ``` 3. 配置环境变量 ```bash cp .env.example .env # 编辑 .env 文件设置数据库连接等配置 ``` 4. 启动开发服务器 ```bash make dev ``` ### 使用Docker 1. 使用docker-compose启动完整环境 ```bash make docker-compose-up ``` 2. 或者构建并运行单个容器 ```bash make docker-build make docker-run ``` ## 配置说明 ### 配置文件 项目支持多环境配置: - `configs/config.yaml` - 默认配置 - `configs/config.dev.yaml` - 开发环境配置 - `configs/config.prod.yaml` - 生产环境配置 ### 环境变量 所有配置都可以通过环境变量覆盖,参考 `.env.example` 文件。 ## API文档 ### 认证端点 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 ### 用户管理端点 - `GET /api/users` - 获取用户列表 - `GET /api/users/:id` - 获取特定用户 - `POST /api/users` - 创建用户 - `PUT /api/users/:id` - 更新用户 - `DELETE /api/users/:id` - 删除用户 ### 系统端点 - `GET /health` - 健康检查 ## 开发命令 ```bash # 开发 make dev # 启动开发服务器 make build # 构建应用程序 make clean # 清理构建文件 # 测试 make test # 运行所有测试 make test-coverage # 生成测试覆盖率报告 make test-unit # 运行单元测试 make test-integration # 运行集成测试 # 代码质量 make lint # 代码检查 make fmt # 格式化代码 make vet # 运行go vet # Docker make docker-build # 构建Docker镜像 make docker-run # 运行Docker容器 make docker-compose-up # 启动完整环境 make docker-compose-down # 停止环境 # 工具 make install-tools # 安装开发工具 make docs # 生成API文档 ``` ## 测试 项目采用双重测试策略: - **单元测试**: 测试特定功能和边界情况 - **属性测试**: 验证通用属性的正确性 - **集成测试**: 测试组件间的交互 运行测试: ```bash make test ``` 查看测试覆盖率: ```bash make test-coverage ``` ## 部署 ### 生产构建 ```bash make build-prod ``` ### Docker部署 ```bash # 构建生产镜像 make docker-build # 使用docker-compose部署 docker-compose --profile production up -d ``` ## 贡献指南 1. Fork项目 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建Pull Request ## 许可证 本项目采用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。