35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
|
|
---
|
|||
|
|
tags: []
|
|||
|
|
date created: 星期日, 十二月 7日 2025, 11:44:41 中午
|
|||
|
|
date modified: 星期日, 十二月 7日 2025, 11:57:43 中午
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
```plaintext
|
|||
|
|
your-api-project/
|
|||
|
|
├── cmd/
|
|||
|
|
│ └── server/
|
|||
|
|
│ ├── main.go # 调用 wire 注入,获取 app 实例,执行 app.Run()
|
|||
|
|
│ └── wire.go # Wire 依赖注入
|
|||
|
|
├── config/ # Viper 配置结构体
|
|||
|
|
├── internal/
|
|||
|
|
│ ├── api/ # (DTO层) 纯数据传输对象,无逻辑
|
|||
|
|
│ │ ├── request/
|
|||
|
|
│ │ └── response/
|
|||
|
|
│ ├── controller/ # (接口层) 解析 request -> 调 service -> 组装 response
|
|||
|
|
│ ├── service/ # (应用服务层) 编排业务逻辑,操作 Entity
|
|||
|
|
│ ├── repository/ # (资源层) 负责 CRUD,屏蔽数据库差异
|
|||
|
|
│ ├── entity/ # (领域层) 核心业务实体 (User, Article),带 GORM tag
|
|||
|
|
│ ├── router/ # (路由层) NewRouter() *gin.Engine
|
|||
|
|
│ └── middleware/ # Gin 中间件
|
|||
|
|
├── pkg/ # (基础设施层) 通用工具
|
|||
|
|
│ ├── app/ # 统一响应封装 (Gin Result)
|
|||
|
|
│ ├── auth/ # JWT 签发与解析
|
|||
|
|
│ ├── hasher/ # 密码加密 (Argon2 / Bcrypt)
|
|||
|
|
│ ├── logger/ # Zap 配置
|
|||
|
|
│ └── timeutil/ # 时间处理工具
|
|||
|
|
├── migrations/ # 数据库变更 SQL
|
|||
|
|
├── docs/ # Swagger
|
|||
|
|
├── go.mod
|
|||
|
|
└── Makefile
|
|||
|
|
```
|