Architecture
Web
yaml
├── cmd/
│ └── main.go
├── internal/
│ ├── controller/
│ │ └── user_controller.go
│ ├── service/
│ │ └── user_service.go
│ ├── repository/
│ │ └── user_repository.go
│ └── model/
│ └── user.go
├── pkg/
│ └── common/
└── config/
go
// model/user.go
type User struct {
ID uint `json:"id"`
Name string `json:"name"`
}
// repository/user_repository.go
type UserRepository interface {
GetByID(id uint) (*User, error)
Save(user *User) error
}
// service/user_service.go
type UserService interface {
GetUser(id uint) (*User, error)
CreateUser(user *User) error
}
// controller/user_controller.go
type UserController struct {
userService UserService
}
func (c *UserController) GetUser(ctx *gin.Context) {
// 处理 HTTP 请求
}
推荐使用的技术栈:
- Web 框架:Gin/Hertz
- ORM:Ent/Gorm
- 依赖注入:Wire
- 配置管理:Viper
- 日志:Zap