Golang-Gin Response 統一返回restful格式的數據

REST與技術無關,代表的是一種軟體架構風格,REST是Representational State Transfer的簡稱,中文翻譯為「表徵狀態轉移」或「表現層狀態轉化」。restful api統一返回格式,可以幫助大家返回統一的格式,不需要去寫Result,開箱即用,不用更改。

目的: gin返回restful格式的數據,返回的200,201 的數據 也包括異常時的404/500等情況
全局統一返回RESTful風格數據,主要是實現Respon介面的方法,對返回值在輸出之前進行修改。

直接調用下文程式碼即可

package response

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// Response
// context 上下文
// httpStatus http 狀態碼
// code 自己定義的狀態碼
// data 返回的空介面
// msg 返回的資訊
func Response(context *gin.Context, httpStatus int, code int, data gin.H, msg string) {
	context.JSON(httpStatus, gin.H{
		"code": code,
		"data": data,
		"msg":  msg,
	})
}

func Success(context *gin.Context, data gin.H, msg string) {
	context.JSON(http.StatusOK, gin.H{
		"code": 200,
		"data": data,
		"msg":  msg,
	})
}

func Fail(context *gin.Context, data gin.H, msg string) {
	context.JSON(http.StatusOK, gin.H{
		"code": 400,
		"data": data,
		"msg":  msg,
	})
}

func UnprocessableEntity(context *gin.Context, data gin.H, msg string) {
	context.JSON(http.StatusUnprocessableEntity, gin.H{
		"code": 422,
		"data": data,
		"msg":  msg,
	})
}

Tags: