graphql Ошибка проверки типа FieldsConflict, возникающая, когда псевдоним не используется - PullRequest
0 голосов
/ 15 февраля 2019

Я получаю сообщение об ошибке «Ошибка проверки типа 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 Ответ

0 голосов
/ 15 февраля 2019

Обычно GraphQL возвращает данные в виде объектов JSON, и невозможно иметь 2 (допустимых) объекта в документе JSON с одинаковым ключом (в вашем случае person).Следовательно, довольно сложно достичь того, что вы описываете.

Результат вашего первого запроса будет примерно таким:

{
  "data": {
    "person": {
      "firstname": "DAN",
      ...
    },
    "person": { // this is not valid
      "firstname": "FRANK"
      ...
    }
  }
}

И вот почему вы должны использовать alias.

Другой вариант - посмотреть, есть ли у сервера GraphQL запрос, который возвращает список person, и результат будет внутри массива, например:

{
  "data": [
    {
      "firstname": "DAN",
      ...
    },
    {
      "firstname": "FRANK",
      ...
    }
  [
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...