Как сделать динамический query?

всем привет

имеем к примеру query

query{
 products{
  id,
  name,
  price
 }
}


что если мне нужно расширить запрос или уменьшить, то есть запросить меньше полей либо больше полей

query{
 products{
  id,
  name,
  price,
  description,
  images
  ...
 }
}


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

много камней не кидайте, только начинаю изучать)
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@KNLNT Автор вопроса
В общем нашел решение, может кому пригодится друзья

Нужно использовать директивы
К примеру мы не хотим в одном из условий подгружать поле description
Значит создаем директиву к данному полю с типом Boolean и далее при запросе в разделе variables указываем в булевом значении нужно это поле или нет(true/false)

query getProducts($withDescription: Boolean!){
 products{
  id
  name
  price
  description @include(if: $withDescription)
  images
  ...
 }
}

....

variables: {
 withDescription: false
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Нет, не обязательно. Клиент формирует запросы как хочет и в этом его главная особенность. Любой набор полей. А именование запроса это по сути только ключ по которому возвращаются данные.

Если мы говорим про сервер то там должно быть реализовано возвращение всех необходимых полей в типе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы