graphql Ошибка проверки типа FieldsConflict, возникающая, когда псевдоним не используется
Я получаю сообщение об ошибке "Ошибка проверки типа 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
}
}
1 ответ
Обычно GraphQL
возвращает данные в виде объектов JSON, и невозможно иметь 2 (допустимых) объекта в документе JSON с одинаковым ключом (в вашем случае person
). Следовательно, довольно невозможно достичь того, что вы описываете.
Результат вашего первого запроса будет выглядеть примерно так:
{
"data": {
"person": {
"firstname": "DAN",
...
},
"person": { // this is not valid
"firstname": "FRANK"
...
}
}
}
И именно поэтому вы должны использовать alias
,
Другой вариант - посмотреть, есть ли у сервера GraphQL запрос, который возвращает список person
и результат будет внутри массива, например:
{
"data": [
{
"firstname": "DAN",
...
},
{
"firstname": "FRANK",
...
}
[
}