golang 三层架构怎么写
时间: 2024-09-30 10:07:55 浏览: 38
在 Go 语言中构建三层架构(也称为 MVC,Model-View-Controller)可以分为以下几个步骤:
1. **Model**(模型层):
- 定义数据结构(structs)代表业务实体,如用户、订单等。
- 实现业务逻辑,处理数据库操作,包括CRUD(创建、读取、更新、删除)以及复杂的业务规则。
```go
type User struct {
ID uint64
Name string
Email string
// 其他字段...
}
func (u *User) CreateUser() error {
// 数据库插入操作...
}
```
2. **Service**(服务层):
- 这一层负责处理请求,将 Model 层的操作封装成可复用的服务函数。
- 包含业务逻辑,验证输入,调用 Model 的方法,并返回结果给 Controller。
```go
import "your-model-module"
type UserService struct {
userModel *UserModel
}
func (us *UserService) CreateUser(user *User) (*User, error) {
// 调用 Model 层方法并处理错误
createdUser, err := us.userModel.CreateUser(user)
if err != nil {
return nil, err
}
return createdUser, nil
}
```
3. **Controller**(控制器层):
- 接受来自前端的请求,解析参数,调用 Service 层提供的服务,并将响应返回给客户端。
- 通常通过 HTTP 请求处理函数来实现。
```go
package main
import (
"net/http"
"github.com/your-service-layer/your-service"
)
func UserController(w http.ResponseWriter, r *http.Request) {
user := &User{...} // 解析请求体
userService := yourService.NewUserService()
resUser, err := userService.CreateUser(user)
if err != nil {
// 返回错误信息
} else {
// 将响应数据写入HTTP响应
}
// 使用http.ResponseWriter完成HTTP响应
}
```
阅读全文