я поддерживаю apis, и кто-то до меня добавил protobuf (потому что это было "быстрее"). Единственное, что быстрее - это RTT из-за меньшей полезной нагрузки, и это можно исправить с помощью gzipped JSON.
Часть, которая мне неприятна, - это относительная работа по поддержке protobuf (по сравнению с JSON). Я использую Java, поэтому мы используем сопоставление объектов Джексона для JSON. Добавление к ответу означает добавление поля в POJO. Но для protobuf мне нужно изменить файл .proto, а затем обновить логику сериализации и десериализации, которая перемещает данные в / из буферов протокола и в POJO. Неоднократно случалось, что случался релиз, когда кто-то добавил поле и забыл вставить код сериализации или десериализации для буферов протокола.
Теперь, когда клиенты реализовали против буферов протокола, от него почти невозможно избавиться.
Вероятно, из этого можно догадаться, мой совет - не делай этого.