Protobuf задаёт схему бинарных сообщений, а OpenAPI описывает контракт HTTP API. Ни один формат сам по себе не гарантирует совместимость: она зависит от характера изменения и поведения клиентов.
В чем принципиальное отличие Protobuf от Swagger/OpenAPI с точки зрения совместимости клиента и сервера?
Protobuf задаёт схему бинарных сообщений, а OpenAPI описывает контракт HTTP API. Ни один формат сам по себе не гарантирует совместимость: она зависит от характера изменения и поведения клиентов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Protobuf задаёт схему бинарных сообщений, а OpenAPI описывает контракт HTTP API. Ни один формат сам по себе не гарантирует совместимость: она зависит от характера изменения и поведения клиентов.
В Protobuf критичны номера полей: удалённые номера резервируют и не используют для другой семантики. В OpenAPI совместимость нарушают, например, удаление ответа, изменение типа поля или добавление обязательного параметра. Не сравнивайте «строгий Protobuf» с «нестрогим JSON» без контекста. Проверяйте старый клиент с новым сервером и обратное направление отдельно.