3.gin-gorm错误处理与路由接口
2023-02-13 00:00:03
技术
通过gin-gorm之项目学习
部分的学习,可以对项目的架构有深入的了解 🤟
{% post_link "gin-gorm1项目准备初始化" %}
{% post_link "gin-gorm2数据库" %}
{% post_link "gin-gorm3错误处理与路由接口" %}
{% post_link "gin-gorm4用户模块接口编写" %}
{% post_link "gin-gorm5密码加密" %}
{% post_link "gin-gorm6编辑、删除用户" %}
错误处理
约定好状态码,便于错误处理,在utils下新建errmsg文件夹,在里面新建errmsg.go
const (
SUCCESS = 200
ERROR = 500
//约定状态码
//code=1000...用户模块错误
ERROR_USERNAME_USED = 1001
ERROR_PASSWORD_WRONG = 1002
ERROR_USER_NOT_EXIST = 1003
ERROR_TOKEN_NOT_EXIST = 1004
ERROR_TOKEN_OUT_TIME = 1005
ERROR_TOKEN_WRONG = 1006
ERROR_TYPE_WRONG = 1007
//code=2000...文章模块错误
//code=3000...分类模块错误
)
var codeMsg = map[int]string{
SUCCESS: "OK",
ERROR: "FAIL",
ERROR_USERNAME_USED: "该用户名已存在",
ERROR_PASSWORD_WRONG: "密码错误",
ERROR_USER_NOT_EXIST: "用户不存在",
ERROR_TOKEN_NOT_EXIST: "token不存在",
ERROR_TOKEN_OUT_TIME: "token已过期",
ERROR_TOKEN_WRONG: "token错误",
ERROR_TYPE_WRONG: " token格式错误",
}
func GetErrMsg(code int) string {
return codeMsg[code]
}
路由接口
在api/v1创建控制数据模型的接口user.go、article.go、category.go,以及控制登录的接口login.go 以用户模块为例
//查询用户是否存在
func UserExist(ctx *gin.Context) {
}
//查询用户
//查询用户列表
func GetUsers(ctx *gin.Context) {
}
//添加用户
func AddUser(ctx *gin.Context) {
}
//编辑用户
func EditUser(ctx *gin.Context) {
}
//删除用户
func DeleteUser(ctx *gin.Context) {
}
在routes/router.go的v1路由组中创建路由接口,这种api为restful风格
router := r.Group("api/v1")
{
//Use用户模块路由接口
router.POST("user/add", v1.AddUser)
router.GET("users", v1.GetUsers)
router.PUT("user/:id", v1.EditUser)
router.DELETE("user/:id", v1.DeleteUser)
//Category分类模块路由接口
//Article文章模块路由接口
}