Как преобразовать JSON тело запроса в класс Java на основе схемы Avro? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть Kotlin приложение Gradle Spring Boot и Spring Webflux, которое принимает JSON в качестве тела запроса. У меня есть openapi сгенерированный Java класс, в который может быть преобразовано тело запроса JSON.

С другой стороны, у меня также есть схема Avro, которая совпадает с openapi , за исключением того, что имена полей были убраны. В теле запроса JSON есть поля, в которых имена начинаются со специального символа, например $device_version, +ip_address, ~country. Таким образом, в схеме Avro я удаляю их, поскольку Avro позволяет только имени поля начинаться с алфавита или подчеркивания.

Приведение из JSON тела запроса к openapi сгенерированному Java класс no проблема, однако, приведение его к сгенерированному классу Avro Java является проблемой из-за имен полей.

Я имею в виду, я могу установить поля вручную, но объект JSON довольно большой.

Существует ли элегантное и быстрое решение для преобразования этого JSON тела запроса, содержащего различные имена полей из-за специального символа, в сгенерированный класс схемы Avro?

Используемые пакеты

  • org.hidetake.swagger.generator
  • org.openapitools:openapi-generator-cli (с swaggerCodeGen)
  • com.commercehub.gradle.plugin:gradle-avro-plugin
...