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
|
||
```
|