У меня есть структура thrift
struct Message { 1: optional int userID; ... }
Безопасна ли операция, чтобы изменить ее на требование по умолчанию?
struct Message { 1: int userID; ... }
Если я знаю, что оно всегда установлено?А как насчет "требуется"?
Как указано в этом ответе , в Thrift существует три степени (так называемой) обязательности:
required
optional
null
Чтобы ответить на заданный вопрос (ы):
Безопасно изменить optional на значение по умолчанию (т. Е. Удалить ключевое слово optional).
Изменение optional на required может нарушить совместимость.Если вы не убедитесь, что все клиенты / серверы обновлены соответствующим образом, может случиться так, что старая сторона не предоставит значение для такого поля.В этом случае другой конец отклонит входящий запрос или ответ как неполный, поскольку в полученных данных отсутствует поле required.
Для дальнейшего чтения по теме вы можетехочу проконсультироваться с чрезвычайно рекомендуемым « отсутствующим руководством» Дивакера Гупты .