在api中,我正在编写一个错误结构,它会对json进行编组。当api有错误时它返回结构,我将http响应代码设置为适当的值。
type PodsError struct {
ErrorCode int `json:"error_code"`
CallingFunction string `json:"calling_function"`
Message string `json:"error_message"`
}
type PodsErrorWrapper struct {
Error PodsError `json:"error"`
}
现在我每次编写结构时都会写一个标题,但我不喜欢我看到的重复代码量。
error := PodsError{http.StatusNotFound, "Calling Func", "Message"}
response.WriteHeader(error.ErrorCode)
response.WriteEntity(PodsErrorWrapper{error})
每当我将错误传递给WriteEntity()时,是否可以将WriteHeader调用移动到被调用的内容?我想必须有一个我可以为PodsErrorWapper实现的功能,我可以将http状态设置为ErrorCode字段。
编辑:对不起我忘了提,我正在使用go-restful包(github.com/emicklei/go-restful)