в проектах?
Я сижу на https://github.com/higherkindness/mu-scala, но чет уже который раз вылезают косяки со стороны либы и джавовские сервисы (использующие другую реализацию) не могут нормально десериализовать сообщения...
У меня из обязательных требований — чтобы можно было указать кастомную директорию, где proto файлы лежат, т.к. у меня в монорепе не только скала проект и протосы отдельно хранятся
Отважный ты, мю в прод тащить
Хе-хе) У меня на скале 5 микросервисов не супер больших, поэтому проблем было не много, но вчера выяснилось, что oneof не работают нормально
scalapb как использовал, но oneof не использовал в proto
Но scalapb же не генерирует сервисы и вот это вот все, чтобы не на голом netty использовать. Или я ошибаюсь?
прямо генерирует, но там не конечно не функционально. есть еще zio-grpc, но его не пробовал( вроде тот же scalapb поверх обмазанный zio)
В чем заключается проблема с oneof?
У меня простенький oneof на стороне скала микросервиса, все данные при отправке запроса корректны, но на стороне java-сервиса, который принимает этот rpc-запрос некорректно десериализуется.. если, допустим отправлять с state -> in_progress, то при дессериализации получается, что я отправил state -> completed, с кучей unknown fields внутри
А если отправляешь completed? Может быть java сервис имеет устаревшую версию прото контракта или этот сервис как-то иначе парсит None / NOT_SET
А если completed отправить, то все очень плохо вообще( Даже не уходит сообщение. Мда
Кароч, похоже, что pbdirect косячит Он тупо по порядку индексы добавляет, вообще не учитывая, что могут быть пропуски индексов из-за oneof. Ну такое
Обсуждают сегодня