GraphQL错误字段冲突:字段具有不同的列表形状
我将AWS AppSync的GraphQL服务器与以下(简化)模式一起使用: 当我在GraphQL错误字段冲突:字段具有不同的列表形状,graphql,aws-appsync,Graphql,Aws Appsync,我将AWS AppSync的GraphQL服务器与以下(简化)模式一起使用: 当我在问题/数据字段中进行包括选择状态作为事件或付款类型的子项的查询时,我得到一个字段冲突错误: FieldsConflict类型的验证错误:状态:字段具有不同的列表形状@“getIssue/data” 这可能是由于事件/状态字段返回一个字符串数组,而付款/状态字段返回一个字符串造成的 为什么Copql认为这是一种冲突?我应该如何构造查询以允许访问这两种数据类型上的状态字段 请注意,我使用的是联合而不是扩展接口,因为发
问题/数据
字段中进行包括选择状态
作为事件
或付款
类型的子项的查询时,我得到一个字段冲突错误:
FieldsConflict类型的验证错误:状态:字段具有不同的列表形状@“getIssue/data”
这可能是由于事件/状态
字段返回一个字符串数组,而付款/状态
字段返回一个字符串造成的
为什么Copql认为这是一种冲突?我应该如何构造查询以允许访问这两种数据类型上的状态字段
请注意,我使用的是联合而不是扩展接口,因为发行
和支付
类型没有通用的数据结构。来自:
如果在执行过程中遇到具有相同响应名称的多个字段选择,则要执行的字段和参数以及结果值应该是明确的。因此,对于同一对象,可能同时遇到的任何两个字段选择只有在它们相等时才有效
您可以通过为一个或两个字段提供字段别名来解决此问题:
query getIssue($id: String!) {
getIssue(id: $id) {
id
data {
... on Event {
time
eventStatus: status
}
... on Payment {
amount
status
}
}
}
}
重命名模式中的一个或两个字段显然也可以解决此问题
query getIssue($id: String!) {
getIssue(id: $id) {
id
data {
... on Event {
time
status
}
... on Payment {
amount
status
}
}
}
}
query getIssue($id: String!) {
getIssue(id: $id) {
id
data {
... on Event {
time
eventStatus: status
}
... on Payment {
amount
status
}
}
}
}