go-zero 统一返回
在go-zero框架中,为了使得服务端的返回更加统一,可以使用go-zero提供的统一返回模型。
以下是一个简单的示例,展示如何在go-zero中创建一个统一的返回模型,并在业务逻辑中使用它:
package main
import "github.com/tal-tech/go-zero/rest/httpx"
// 定义统一返回的结构体
type Response struct {
Code int `json:"code"`
Data interface{} `json:"data"`
Msg string `json:"msg"`
}
// 定义成功的返回
func SuccessResponse(data interface{}) Response {
return Response{
Code: 200,
Data: data,
Msg: "success",
}
}
// 定义失败的返回
func ErrorResponse(code int, msg string) Response {
return Response{
Code: code,
Data: nil,
Msg: msg,
}
}
// 使用Response进行业务逻辑处理
func someHandler(r *http.Request) {
// 假设处理业务逻辑并获取结果
result := "some data"
// 构造成功的返回
resp := SuccessResponse(result)
// 将返回结果写入HTTP响应中
httpx.WriteJson(w, http.StatusOK, resp)
}
在上述代码中,我们定义了一个统一的返回模型Response
,它包含一个状态码Code
、一个数据字段Data
和一个消息Msg
。然后,我们定义了两个辅助函数SuccessResponse
和ErrorResponse
来分别创建成功和失败的返回实例。在业务逻辑处理函数someHandler
中,我们使用这些辅助函数来构造最终的返回,并通过httpx.WriteJson
函数将响应以JSON格式写入HTTP响应中。
评论已关闭