未使用别名时出现 FieldsConflict 类型的 graphql 验证错误
graphql Validation error of type FieldsConflict coming when alias is not used
当我没有在我的请求中使用别名时,我收到错误 "Validation error of type FieldsConflict"。请确认这是预期的还是有解决方法
{
person(search: [{firstname: "DAN", lastname: "WATLER", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
person(search: [{firstname: "FRANK", lastname: "TEE", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
}
上面的代码给出了验证错误,但如果我使用如下所示的别名,则不会出现错误,我会得到成功的响应。
我不想使用别名,如果有任何解决方法,请提出建议。
谢谢!
{
dan: person(search: [{firstname: "DAN", lastname: "WATLER", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
frank: person(search: [{firstname: "FRANK", lastname: "TEE", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
}
通常 GraphQL
returns 数据作为 JSON 对象,JSON 文档中不可能有 2 个(有效)对象具有相同的键(在你的情况下 person
)。因此,要实现您所描述的目标几乎是不可能的。
您的第一个查询的结果类似于:
{
"data": {
"person": {
"firstname": "DAN",
...
},
"person": { // this is not valid
"firstname": "FRANK"
...
}
}
}
这就是为什么你必须使用 alias
。
另一种选择是查看 GraphQL 服务器是否有一个查询 returns person
的列表并且结果将在数组内部,例如:
{
"data": [
{
"firstname": "DAN",
...
},
{
"firstname": "FRANK",
...
}
[
}
当我没有在我的请求中使用别名时,我收到错误 "Validation error of type FieldsConflict"。请确认这是预期的还是有解决方法
{
person(search: [{firstname: "DAN", lastname: "WATLER", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
person(search: [{firstname: "FRANK", lastname: "TEE", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
}
上面的代码给出了验证错误,但如果我使用如下所示的别名,则不会出现错误,我会得到成功的响应。
我不想使用别名,如果有任何解决方法,请提出建议。 谢谢!
{
dan: person(search: [{firstname: "DAN", lastname: "WATLER", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
frank: person(search: [{firstname: "FRANK", lastname: "TEE", country: "FRANCE"}])
{
firstname
lastname
country
age
address
}
}
通常 GraphQL
returns 数据作为 JSON 对象,JSON 文档中不可能有 2 个(有效)对象具有相同的键(在你的情况下 person
)。因此,要实现您所描述的目标几乎是不可能的。
您的第一个查询的结果类似于:
{
"data": {
"person": {
"firstname": "DAN",
...
},
"person": { // this is not valid
"firstname": "FRANK"
...
}
}
}
这就是为什么你必须使用 alias
。
另一种选择是查看 GraphQL 服务器是否有一个查询 returns person
的列表并且结果将在数组内部,例如:
{
"data": [
{
"firstname": "DAN",
...
},
{
"firstname": "FRANK",
...
}
[
}