Sidebar

Mobile navigation sidebar

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 开发需要注重代码组织和错误处理。良好的项目结构能让团队协作更加高效。