如果我将 Thrift 数据结构从一个文件移动到另一个文件,这是否是一个重大变化?

Is it a breaking change if I move a Thrift data structure from one file to another?

如果我有一个包含名为 serviceA.thrift:

的 Thrift 定义的服务特定文件
struct ServiceError {
  1: required i16 code,
  2: required string message
}

struct Service Response {
  1: optional ServiceError error;
  ...
}

并希望将 ServiceError 的定义移动到名为 common.thrift 的单独文件中,以便它可以用于不同的服务:

struct ServiceError {
  1: required i16 code,
  2: required string message
}

更新 serviceA.thrift 以使用新的共享数据结构是否会是重大更改:

include "common.thrift"

struct Service Response {
  1: optional common.ServiceError error;
  ...
}

?

由于有线格式只知道数字 ID1),您无需更改它应该可以无缝工作。


1) 该规则的唯一例外是服务方法名称