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

go 封装restful api风格返回数据格式_第1张图片

你可能感兴趣的:(golang,golang,restful,开发语言)