Запрос 2 или более полей в GraphQL - PullRequest
0 голосов
/ 06 января 2020

Предположим, если мы хотим запросить несколько полей в GraphQL, как это сделать?

{
  book(id:"123",name:"book1") {
    id,
    name,
    authors{
      id
    }
  }
}

Кроме того, как отфильтровать подполе, например, автора по имени ??

{
  book(id:"123",name:"book1") {
    id,
    name,
    authors(name:"author1"){
      id
    }
  }
}

Я нашел эту статью, но просто хотел узнать, есть ли лучший способ. https://www.yld.io/blog/query-by-2-or-more-fields-on-graphql/

1 Ответ

0 голосов
/ 07 января 2020

Предполагается, что вы создаете сервер GraphQL и хотите знать, как фильтровать подполе.

В зависимости от используемой вами серверной библиотеки, вы хотите написать «Field Resolver» на родительском объекте. Тип «книга». Полевой преобразователь вызывается один раз для каждого разрешенного родителя, поэтому у вас будет ссылка на разрешенный родительский тип (Book в вашем случае), а также аргументы для поля (name: "author1"), а затем вы сможете разрешить его.

Вы также можете использовать dataloader , поскольку один вызов базы данных для разрешения подполя автора на родительское поле может вызвать поток запросов к базе данных.

...