go 封装restful api风格返回数据格式

 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.执行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值