package response import ( "net/http" "slow_wild_api/apps/internal/types" "github.com/zeromicro/go-zero/rest/httpx" "google.golang.org/grpc/status" ) type Body struct { Code int `json:"code"` Msg string `json:"msg"` Data interface{} `json:"data,omitempty"` } func Response(w http.ResponseWriter, resp *types.BaseReturnData, err error) { var body Body if err != nil { // 处理 RPC 错误 if e, ok := status.FromError(err); ok { body.Code = int(e.Code()) body.Msg = e.Message() } else { body.Code = -1 body.Msg = err.Error() } } else { body.Code = 0 body.Msg = "OK" body.Data = resp.Data } httpx.OkJson(w, body) }