[zeromicro/go-zero]httpx OkJson方法修改建议

2023-12-25 267 views
1

image 建议添加一个对OKJson方法okJsonHandler逻辑,如上,方便对接口返回数据的统一结构封装

回答

0

哪里设置这个handler呢?

8

因为我需要一个这样的统一返回

type BaseReply struct {
    Code int         `json:"code"`
    Msg  string      `json:"msg"`
    Data interface{} `json:"data"`
}

目前我对error做了统一的处理,如下:

    httpx.SetErrorHandler(func(err error) (int, interface{}) {
        if e, ok := err.(*shared.CodeError); ok {
            return http.StatusOK, types.BaseReply{
                Code: e.Code,
                Msg:  e.Error(),
            }
        }
        return http.StatusOK, types.BaseReply{
            Code: types.ErrorServerError.Code,
            Msg:  err.Error(),
        }
    })

然而对于正确的返回我只能通过下面这个方式处理 image

我的建议是能否提供如下类似的方法:

    httpx.SetOkJsonHandler(func(resp interface) (int, interface{}) {
        return http.StatusOK, types.BaseReply{
                Code: CodeOk,
                Data:  resp
        }
    })

这样就能满足对统一返回结构的需求,或者是否有其他方式可以满足我的需求。

6

你看看是否可以修改通过goctl模板来达成

6

好的 我试试

4

httpx.SetOkJsonHandler 加这个可以统一处理,不用改模版在OkJson套一层,不考虑加一个吗? @kevwan