Golang chaincode отправляет код ошибки вместе с сообщением - PullRequest
0 голосов
/ 22 марта 2019

Я также хочу отправить код ошибки, отличный от сообщения об ошибке, в клиентские приложения, использующие функцию shim.Error, но он принимает только параметр msg, как это сделать?

1 Ответ

1 голос
/ 22 марта 2019

shim.Error возвращает структуру ответа.

func Error(msg string) pb.Response {
    return pb.Response{
        Status:  ERROR,
        Message: msg,
    }
}

Статус имеет значение ERROR const, которое определено как 500. Но вы можете использовать любой код ошибки, который вы хотите,>> = 400.

Таким образом, вместо использования функции «Ошибка», вы сами создаете ответ и устанавливаете код состояния.

return pb.Response{
        Status:  404,
        Message: "Invoke method you wanted to trigger does not exist",
    } 

Или вы можете создать свою собственную функцию Error, которая также принимает код состояния и проверяет, находится ли он в диапазоне ошибок.

Последний вариант - использовать свойство Payload объектаответ и добавьте сведения об ошибке, включая код состояния в полезную нагрузку.

...