Go 语言 RESTful API 设计模式与实战
10 min
0
Go API 设计原则
Go 语言以其简洁和高效著称,在设计 RESTful API 时同样应该遵循这些原则。
项目结构
推荐采用清晰的项目分层结构:
api/
├── handler/ # HTTP 请求处理
├── service/ # 业务逻辑
├── repository/ # 数据访问
├── model/ # 数据模型
└── middleware/ # 中间件
错误处理模式
type APIError struct {
Code int `json:"code"`
Message string `json:"message"`
}
func (e *APIError) Error() string {
return e.Message
}
func HandleRequest(w http.ResponseWriter, r *http.Request) {
result, err := service.DoSomething(r.Context())
if err != nil {
var apiErr *APIError
if errors.As(err, &apiErr) {
writeJSON(w, apiErr.Code, apiErr)
return
}
writeJSON(w, http.StatusInternalServerError, &APIError{
Code: 500,
Message: "内部服务器错误",
})
return
}
writeJSON(w, http.StatusOK, result)
}
中间件设计
中间件是 Go HTTP 服务的核心模式。常见的中间件包括:
- 日志记录 — 记录请求方法和耗时
- 认证授权 — JWT Token 验证
- 限流 — 防止 API 滥用
- CORS — 跨域资源共享配置
数据验证
使用 struct tag 进行数据验证,保持代码简洁且类型安全。
总结
Go 语言的 API 开发需要注重代码组织和错误处理。良好的项目结构能让团队协作更加高效。