Мы используем сторонний веб-сервис REST, который определяет их json API, используя схемы piqi. Наша текущая архитектура требует, чтобы эти данные были прочитаны через Java-клиент и переданы в двоичный файл C ++. В идеале я хотел бы, чтобы все POJO и структуры c ++, а также логика преобразования данных (json-> java, java-> c ++) генерировались. Я изучал различные комбинации протобуфа, протостуфа и бережливости, но в потоке все еще есть пробелы. У кого-нибудь есть предложения?
Автор Piqi здесь. Скорее всего, сторонний провайдер API предоставляет JSON через HTTP API, используя piqi-RPC. Предполагая, что у вас есть актуальная .piqi
В определениях сервиса есть вероятность, что вы можете получить выходные данные и / или отправить входные данные в формате Protocol Buffers вместо JSON. Работа с Protobuf на Java и C ++ много проще и надежнее, чем иметь дело с JSON.
Если поставщик API явно не отключит использование буферов протокола в качестве формата ввода / вывода, вы сможете использовать этот формат, установив Accept
заголовок (и Content-Type
для входных параметров) в application/x-protobuf
как описано Вот. Я бы просто попробовал это и посмотрел, работает ли это. Если это не так, вы можете попросить поставщика включить его.
Других решений пока нет …