Есть ли способ получить противоположность полей запроса graphql? - PullRequest
0 голосов
/ 01 февраля 2019

Я хотел бы получить противоположное поле запроса GraphQL:

, что означает, что строка запроса не будет обрабатываться в результате, а не внутри строки запроса будет запрашиваться в результате.

Поскольку существуют разные устройства записи json, я не могу написать противоположный запрос вручную.Любой способ написать противоположный запрос автоматически?

Например, у меня есть JSON, как:

{
  "data": {
    "source": "AWS",
    "hero": {
      "version": "my version",
      "name": "R2-D2",
      "friends": [
        {
          "attribute": "like something",
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

У меня есть запрос

{
  source,
  hero {
    name
    friends {
      attribute
    }
  }
}

Я хотел бы получить результат:

{
  "data": {
    "hero": {
      "version": "my version",
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

Какие поля запроса, отсутствующие в запросе, будут отображаться в результате, в то время как поля запроса в запросе не будут находиться внутри результата.Как сделать эти операции в JavaScript?Можете привести пример?

1 Ответ

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

Поля, включенные в запрос, вы получаете только в том случае, если хотите получить то, чего нет в запросе, а затем написать другой запрос для полей, не входящих в исходный запрос.

В простейшем случае GraphQLо запросе конкретных полей на объектах.

https://graphql.org/learn/queries/

Запрос:

{
  hero {
    version
    friends {
      name
    }
  }
}

Результат:

{
  "data": {
    "hero": {
      "version": "my version",
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

Обновление по комментариям:

Ваш вопрос больше о том, как Динамически генерировать запросы GraphQL?

В этом случае вы можете использовать фрагменты, но вам все равно придется писать несколько запросов.

Фрагменты позволяют создавать наборы полей, а затем включать их в запросы, где вынужно.

https://graphql.org/learn/queries/#fragments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...