根据GraphQL Best Practices ,GraphQL 服务应遵循“始终避免破坏性更改并提供无版本 API 的常见做法”。
如果遵循最佳实践,向枚举添加值是否被视为应该避免的重大更改?
为了说明这一点,假设模式具有以下枚举:
enum Episode {
NEWHOPE
EMPIRE
JEDI
}
在将来的某个时候将枚举演变为这样的做法是否不好:
enum Episode {
NEWHOPE
EMPIRE
JEDI
FORCEAWAKENS
ROGUEONE
}
最佳答案
具体来说,破坏性更改是对架构结构的更改,这将导致已编写的查询失败。我在网上找不到详尽的列表,但这里有一些重大更改示例:
Int
更改为 String
,使用该字段的客户端可能会在新响应中出现类型错误)。 新的枚举值可能会破坏客户端(如果它没有处理新情况的代码,则可能存在运行时错误),但我认为这是客户端设计问题,而不是对架构的重大更改!
关于graphql - 添加 Enum 值对 GraphQL 来说是一个重大变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43106173/