根据GraphQL Best Practices,GraphQL服务应遵循“始终避免破坏更改并提供无版本API的常见做法。”
在Enum中添加一个值,如果遵循最佳实践,是否应该避免这种变化?
为了说明这一点,我们假设架构有这个枚举:
enum Episode {
NEWHOPE
EMPIRE
JEDI
}
在未来的某个时候将enum演变成这样做是不好的做法:
enum Episode {
NEWHOPE
EMPIRE
JEDI
FORCEAWAKENS
ROGUEONE
}
答案 0 :(得分:2)
具体而言,重大更改是对架构结构的更改,这会导致已编写的查询失败。我无法在网上找到详尽的清单,但这里有一些例子突破了变化:
Int
更改为String
,使用该字段的客户端可能会出现类型错误新的回应)。新的枚举值可能会破坏客户端(如果它没有处理新案例的代码,可能会出现运行时错误),但我认为这是一个问题。客户端设计问题,但不是对架构的重大更改!