控制器定义
说明
控制器文件需要编写在 app/controller
目录下,一般一个模块一个控制器文件
起到映射参数内容呈现的作用
package controller
func UserList(ctx *tg.Context) {
var req api.UserListReq
ctx.BindStructValidate(&req)
res, err := service.UserService().UserList(req)
if err != nil {
ctx.Fail("查询失败")
return
}
ctx.Success(res)
}
package controller
func UserList(ctx *tg.Context) {
var req api.UserListReq
ctx.BindStructValidate(&req)
res, err := service.UserService().UserList(req)
if err != nil {
ctx.Fail("查询失败")
return
}
ctx.Success(res)
}
成功返回 ctx.Success()
- @param
data
数据,会被转成json格式 (必填) - @param
option
错误码和消息自定义,不传会用默认值 (选填) - -------@param
Code
状态码,默认200 - -------@param
Message
提示消息,默认ok
ctx.Success(data, tg.SuccessOption{
Code: 200,
Message: "成功",
})
ctx.Success(data, tg.SuccessOption{
Code: 200,
Message: "成功",
})
前端会得到
{
"code": 200,
"message": "成功",
"data": null
}
{
"code": 200,
"message": "成功",
"data": null
}
异常返回 ctx.Fail()
- @param
message
错误消息 (必填) - @param
option
错误码和消息自定义,不传会用默认值 (选填) - -------@param
StatusCode
状态码,默认200 - -------@param
ErrorCode
提示消息,默认10001
ctx.Fail("参数错误", tg.FailOption{
StatusCode: 401,
ErrorCode: 10001,
})
ctx.Fail("参数错误", tg.FailOption{
StatusCode: 401,
ErrorCode: 10001,
})
前端会得到
{
"code": 10001,
"message": "参数错误",
}
{
"code": 10001,
"message": "参数错误",
}
常用错误码
var ErrorCode = &errorCode{
VALIDATE: 10001, // 验证类错误
TokenExpire: 10002, // Token过期
EXCEPTION: 20001, // 服务或代码异常类错误
MySqlError: 20002, // mysql错误
}
var ErrorCode = &errorCode{
VALIDATE: 10001, // 验证类错误
TokenExpire: 10002, // Token过期
EXCEPTION: 20001, // 服务或代码异常类错误
MySqlError: 20002, // mysql错误
}
直接输出JSON ctx.JSON()
- @param
code
状态码 (必填) - @param
data
数据,会被转成json (必填)
直接输出XML ctx.XML()
- @param
code
状态码 (必填) - @param
data
数据,会被转成xml (必填)
写入缓存信息到链路 ctx.Set()
- @param
key
键 - @param
value
值
从链路中获取缓存信息 ctx.Get()
- @param
key
键 - @param
value
值