У меня есть структура Go, которую мы используем в настоящее время в нашем restful API, который выглядит следующим образом:
type Req struct {
Amount *int
}
Я использую указатель здесь, потому что если значение Amount равно nil, это означает Amount
не был заполнен, если Сумма не равна нулю, но равна нулю, это означает, что поле заполнено, но значение равно нулю.
Когда мы начали переходить на протофайлы и хотим использовать его, как, основной API получает запрос как HTTP API и отправляет его следующему сервису через gRPC с тем же профилем, с которым я столкнулся, проблемаproto3
не может сгенерировать указатель для суммы.Это хорошо, потому что буферы протокола предназначены для отправки данных между отдельными системами, но как я могу решить проблему, описанную выше, потому что, если я получаю запрос, я не могу решить, что сумма равна нулю или просто равна нулю.