Перенос akka remote на akka-http, как сериализовать в json вместо protocolBuffer без огромного количества работы
У меня уже есть приложение в Scala, которое использует akka-remote для отправки сообщений с веб-сервера на сервер приложений. Вместо этого я собираюсь изменить это на http запросы.
Я вижу, что сегодня akka-remote уже выполняет всю сериализацию и десериализацию для меня без написания каких-либо сериализаторов / десериализаторов, но протокол является буфером протокола.
С http-запросом-ответом я хотел бы иметь json вместо protocol-buffer.
Сообщения, отправляемые с веб-сервера на сервер приложений, представляют собой сложные классы дел. Я не хочу писать все устройства записи / чтения / форматирования для выполнения сериализации json, так как не было необходимости писать сериализацию буфера протокола с помощью akka remote.
Есть ли какое-либо решение, которое позволит мне выполнять сериализацию JSON без написания всех писателей / читателей?
Спасибо
1 ответ
Используйте библиотеку circe JSON. Другие библиотеки, такие как play json, spray json и другие, требуют, чтобы вы явно указывали форматеры для каждого класса case. Другой подход заключается в использовании сериализации Avro со схемой-реестром. Он оборачивает JSON дополнительной информацией, поэтому он также читабелен. Этот подход требует некоторой рутины, чтобы все заработало, но он защищает вас от обратных несовместимых изменений.