1.定义统一的json格式,这样我们在编写逻辑的时候直接调用。
package common
import (
"github.com/gin-gonic/gin"
"net/http"
)
// ReJson 定义返回结构体
type ReJson struct {
Code int `json:"code"` //返回代码
Msg any `json:"msg"` //返回提示信息
Count int `json:"count"` //返回总数
Data any `json:"data"` //返回数据
}
// ResOK 请求成功的返回体,传入请求成功的数据和总数
func ResOK(c *gin.Context, data any, count int) {
//将参数赋值给你结构体
Json := ReJson{
Code: 10000,
Msg: "请求成功!",
Count: count,
Data: data,
}
c.JSON(http.StatusOK, Json)
}
// ResErr 请求成功但是有错误的返回体,把错误提示信息传入就行
func ResErr(c *gin.Context, msg any) {
//将参数赋值给你结构体
Json := ReJson{
Code: 10001,
Msg: msg,
Count: 0,
Data: "网络请求成功,但是有错误或没有数据",
}
c.JSON(http.StatusOK, Json)
}
// ResFail 请求失败的返回体(网络不通),只需要传入请求失败的信息回来就行了
func ResFail(c *gin.Context, msg any) {
//将参数赋值给你结构体
Json := ReJson{
Code: 10004,
Msg: msg,
Count: 0,
Data: "网络不通,请查看web请求 或数据库连接问题!",
}
c.JSON(http.StatusNotFound, Json)
}
2.在api 方法中返回
package admin
//apiAdminIndex
import (
"github.com/gin-gonic/gin"
"goweb/common"
)
func Index(c *gin.Context) {
type js struct {
Name string `json:"name"`
Age int `json:"age"`
}
data := []js{
{"周杰伦", 18}, {"刘德华", 17}}
common.ResOK(c, data, 2)
}
3.执行结果
文章评论