- 重构根目录CLAUDE.md为项目总览(60行精简版) - 细化backend模块CLAUDE.md为开发指南 - 新增各子模块CLAUDE.md文件: - api/desc/ - API定义模块 - internal/handler/ - 请求处理器 - internal/logic/ - 业务逻辑层 - internal/model/ - 数据模型层 - internal/middleware/ - 中间件层 - internal/svc/ - 服务上下文 - configs/ - 配置目录 - deploy/ - 部署配置 - pkg/ - 公共库 - scripts/ - 工具脚本 - configs/sql/ - SQL脚本 - 修复PostgreSQL SSL配置参数 - 清理旧的backend-old目录 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
40
backend/internal/handler/CLAUDE.md
Normal file
40
backend/internal/handler/CLAUDE.md
Normal file
@ -0,0 +1,40 @@
|
||||
# Handler层 - 请求处理器
|
||||
|
||||
## 📋 目录结构
|
||||
```
|
||||
internal/handler/
|
||||
├── auth/ # 认证处理器
|
||||
├── category/ # 分类处理器
|
||||
├── photo/ # 照片处理器
|
||||
├── user/ # 用户处理器
|
||||
├── health/ # 健康检查
|
||||
└── routes.go # 路由注册
|
||||
```
|
||||
|
||||
## 🎯 处理器职责
|
||||
- **接收请求**: HTTP请求入口
|
||||
- **参数验证**: 请求参数校验
|
||||
- **调用逻辑**: 调用logic层处理
|
||||
- **返回响应**: 格式化响应
|
||||
|
||||
## 🚀 开发流程
|
||||
1. **新增处理器**: 在对应目录创建handler文件
|
||||
2. **注册路由**: 在routes.go中添加路由
|
||||
3. **绑定逻辑**: 调用对应的logic层方法
|
||||
|
||||
## 📊 代码模板
|
||||
```go
|
||||
// 示例处理器结构
|
||||
func (h *CreatePhotoHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
// 1. 解析请求参数
|
||||
// 2. 调用logic层
|
||||
// 3. 返回响应
|
||||
}
|
||||
```
|
||||
|
||||
## 🔗 对应关系
|
||||
| Handler | Logic | Model |
|
||||
|---|---|---|
|
||||
| `auth/` | `logic/auth/` | `model/user/` |
|
||||
| `photo/` | `logic/photo/` | `model/photo/` |
|
||||
| `category/` | `logic/category/` | `model/category/` |
|
||||
43
backend/internal/logic/CLAUDE.md
Normal file
43
backend/internal/logic/CLAUDE.md
Normal file
@ -0,0 +1,43 @@
|
||||
# Logic层 - 业务逻辑
|
||||
|
||||
## 📋 目录结构
|
||||
```
|
||||
internal/logic/
|
||||
├── auth/ # 认证逻辑
|
||||
├── category/ # 分类业务逻辑
|
||||
├── photo/ # 照片业务逻辑
|
||||
├── user/ # 用户业务逻辑
|
||||
└── health/ # 健康检查逻辑
|
||||
```
|
||||
|
||||
## 🎯 逻辑层职责
|
||||
- **业务处理**: 核心业务逻辑实现
|
||||
- **数据验证**: 业务规则验证
|
||||
- **事务管理**: 数据库事务控制
|
||||
- **错误处理**: 业务异常处理
|
||||
|
||||
## 🚀 开发流程
|
||||
1. **实现接口**: 根据API定义实现逻辑
|
||||
2. **调用模型**: 使用model层操作数据
|
||||
3. **处理异常**: 返回标准化错误
|
||||
|
||||
## 📊 代码结构
|
||||
```go
|
||||
// 业务逻辑模板
|
||||
func (l *CreatePhotoLogic) CreatePhoto(req types.CreatePhotoRequest) (*types.Photo, error) {
|
||||
// 1. 业务验证
|
||||
// 2. 数据操作
|
||||
// 3. 返回结果
|
||||
}
|
||||
```
|
||||
|
||||
## 🔗 层级关系
|
||||
```
|
||||
Handler → Logic → Model → Database
|
||||
```
|
||||
|
||||
## 🎯 最佳实践
|
||||
- **单一职责**: 每个logic方法只做一件事
|
||||
- **错误处理**: 使用pkg/errorx定义错误
|
||||
- **日志记录**: 关键操作添加日志
|
||||
- **事务边界**: 复杂操作使用事务
|
||||
46
backend/internal/middleware/CLAUDE.md
Normal file
46
backend/internal/middleware/CLAUDE.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Middleware层 - 中间件
|
||||
|
||||
## 📋 文件结构
|
||||
```
|
||||
internal/middleware/
|
||||
├── auth.go # JWT认证中间件
|
||||
├── cors.go # 跨域处理中间件
|
||||
├── logger.go # 日志中间件
|
||||
├── error.go # 错误处理中间件
|
||||
└── middleware.go # 中间件管理器
|
||||
```
|
||||
|
||||
## 🎯 中间件职责
|
||||
- **认证授权**: JWT令牌验证
|
||||
- **跨域处理**: CORS配置
|
||||
- **日志记录**: 请求日志
|
||||
- **错误处理**: 统一错误响应
|
||||
- **限流熔断**: 请求限流
|
||||
|
||||
## 🚀 中间件顺序
|
||||
```
|
||||
请求 → Logger → CORS → Auth → RateLimit → Handler
|
||||
```
|
||||
|
||||
## 📊 配置参数
|
||||
| 中间件 | 配置项 | 默认值 |
|
||||
|---|---|---|
|
||||
| **CORS** | 允许域名 | localhost:3000 |
|
||||
| **Logger** | 日志级别 | info |
|
||||
| **Auth** | 过期时间 | 24小时 |
|
||||
|
||||
## 🎯 使用方式
|
||||
```go
|
||||
// 在路由中使用
|
||||
r.Use(middleware.Cors())
|
||||
r.Use(middleware.Logger())
|
||||
r.Use(middleware.Auth())
|
||||
```
|
||||
|
||||
## 🔄 扩展中间件
|
||||
1. **新增文件**: 创建新的中间件文件
|
||||
2. **注册使用**: 在routes.go中添加
|
||||
3. **配置参数**: 在配置文件中设置
|
||||
|
||||
## ⚙️ 配置位置
|
||||
- 配置项: `etc/photography-api.yaml` -> `middleware` 部分
|
||||
49
backend/internal/model/CLAUDE.md
Normal file
49
backend/internal/model/CLAUDE.md
Normal file
@ -0,0 +1,49 @@
|
||||
# Model层 - 数据模型
|
||||
|
||||
## 📋 目录结构
|
||||
```
|
||||
internal/model/
|
||||
├── user.go # 用户模型
|
||||
├── photo.go # 照片模型
|
||||
├── category.go # 分类模型
|
||||
├── vars.go # 模型变量
|
||||
├── sql/ # SQL定义文件
|
||||
│ ├── user.sql # 用户表结构
|
||||
│ ├── photo.sql # 照片表结构
|
||||
│ └── category.sql # 分类表结构
|
||||
└── *_gen.go # 自动生成代码
|
||||
```
|
||||
|
||||
## 🎯 模型职责
|
||||
- **数据定义**: 数据库表结构
|
||||
- **CRUD操作**: 基础数据操作
|
||||
- **关联关系**: 表间关系定义
|
||||
- **验证规则**: 数据验证
|
||||
|
||||
## 🚀 开发流程
|
||||
1. **定义SQL**: 在sql/目录创建表结构
|
||||
2. **生成模型**: `make generate-model`
|
||||
3. **扩展方法**: 在对应模型文件添加自定义方法
|
||||
|
||||
## 📊 表结构关系
|
||||
```
|
||||
User 1:N Photo (用户拥有多张照片)
|
||||
Category 1:N Photo (分类包含多张照片)
|
||||
```
|
||||
|
||||
## 🎯 文件说明
|
||||
| 文件 | 用途 | 修改频率 |
|
||||
|---|---|---|
|
||||
| `user.sql` | 用户表定义 | 低 |
|
||||
| `photo.sql` | 照片表定义 | 中 |
|
||||
| `category.sql` | 分类表定义 | 低 |
|
||||
| `*_gen.go` | 自动生成代码 | 不修改 |
|
||||
|
||||
## 🔄 生成命令
|
||||
```bash
|
||||
# 生成所有模型
|
||||
make generate-model
|
||||
|
||||
# 生成单个模型
|
||||
goctl model mysql ddl -src sql/user.sql -dir ./internal/model/
|
||||
```
|
||||
39
backend/internal/svc/CLAUDE.md
Normal file
39
backend/internal/svc/CLAUDE.md
Normal file
@ -0,0 +1,39 @@
|
||||
# Service Context - 服务上下文
|
||||
|
||||
## 📁 文件结构
|
||||
```
|
||||
internal/svc/
|
||||
└── servicecontext.go # 服务上下文定义
|
||||
```
|
||||
|
||||
## 🎯 核心职责
|
||||
- **服务初始化**: 集中管理所有服务依赖
|
||||
- **依赖注入**: 为handler提供所需组件
|
||||
- **生命周期**: 管理服务生命周期
|
||||
|
||||
## 🔧 组件管理
|
||||
```go
|
||||
type ServiceContext struct {
|
||||
Config config.Config // 配置
|
||||
DB *gorm.DB // 数据库连接
|
||||
UserModel model.UserModel // 用户模型
|
||||
PhotoModel model.PhotoModel // 照片模型
|
||||
CategoryModel model.CategoryModel // 分类模型
|
||||
Middleware *middleware.MiddlewareManager // 中间件管理
|
||||
}
|
||||
```
|
||||
|
||||
## 🚀 初始化流程
|
||||
```
|
||||
启动服务 → 加载配置 → 初始化数据库 → 创建模型 → 注册中间件 → 启动HTTP服务
|
||||
```
|
||||
|
||||
## 📋 扩展方式
|
||||
1. **新增模型**: 在ServiceContext中添加新字段
|
||||
2. **初始化**: 在NewServiceContext中初始化
|
||||
3. **使用**: 在handler中通过svc访问
|
||||
|
||||
## 🎯 设计模式
|
||||
- **单例模式**: 整个服务生命周期只创建一次
|
||||
- **依赖注入**: 通过构造函数传递依赖
|
||||
- **门面模式**: 为上层提供统一的访问接口
|
||||
Reference in New Issue
Block a user