go – How can I send the error body from grpc-gateway?
We are using grpc-gateway
in our service. In the service, we are calling an API and will get some error code from an API for non-2XX responses. We have to wrap that error and return it from the service.
I am using grpc
status to return that from the service.
Code:
func wrapError(err error, statusCode codes.Code, errorCode string) error {
errorInfo := &dealv1.ErrorResponse{
ErrorCode: &errorCode,
}
status, err := status.New(statusCode, err.Error()).WithDetails(errorInfo)
if err != nil {
return err
}
return status.Err()
}
I am using a custom error body inside details to keep future extensibility in mind.
JSON:
{
"code": 2,
"message": "",
"details": [
{
"@type": "",
"errorCode": "overlaping_error_code"
}
]
}
I am getting this @type property also with protobuf path as value. Does someone know how can I get rid of this @type property or is there any better way to return the error body?
Read more here: Source link