go-zero API语法与路由配置详解
1. API定义文件规范
// api/user.api
syntax = "v1"type LoginReq {Username string `json:"username"`Password string `json:"password"`
}type Response {Code int    `json:"code"`Data string `json:"data"`
}service user {@handler Loginpost /api/v1/login (LoginReq) returns (Response)
}
2. 路由注册机制
# 使用goctl生成路由代码
goctl api go -api user.api -dir .
3. 参数校验语法
// 带验证的请求结构
type RegisterReq {Username string `json:"username" validate:"required,min=6"`Email    string `json:"email" validate:"email"`Password string `json:"password" validate:"required,contains=!@#"`
}
4. 与Gin框架对比
| 特性 | go-zero | Gin | 
| 路由定义方式 | API描述文件声明式配置 | 代码内链式配置 | 
| 参数校验 | 自动生成校验代码 | 手动编写校验逻辑 | 
| 代码生成 | 内置goctl生成完整项目结构 | 需自行组织架构 | 
| 性能表现 | 内置优化路由树 | 标准实现 | 
5. 最佳实践
- 使用API文件统一管理接口规范
- 通过goctl自动生成路由、handler和校验代码
- 采用分层校验:基础校验在API文件,业务校验在logic层
- 合理使用路由分组(通过service定义实现)