对下面的情景会发生什么感到好奇?
作为一个更普遍的问题,退出现有API(即曾经在.thrift文件中定义)是否有最佳实用性?
答案 0 :(得分:0)
这是软版本控制的好处之一,它不仅仅是Thrift功能。 API可能会随着时间的推移而发生变化,只要遵守一套非常极小的规则,就会有一种定义明确的应用程序行为方式。
关于Thrift,这些规则包括永远不应该改变任何给定struct成员或参数的特定字段ID的类型。服务名称和方法名称也是如此。数字字段/参数ID和服务/方法名称是电线上数据中使用的标识符。
因此,
值得一提的最后一点是关于required
的使用:此属性可能无法从已发布的API结构成员because of the way of how the required semantics work中删除。
否则,当旧客户端调用新服务时,您将遇到compat问题,反之亦然。