Я пытаюсь понять, возможно ли это вообще и есть ли для этого наилучшая практика. Мы реализуем GraphQL API в Laravel с помощью пакета https://github.com/Folkloreatelier/laravel-graphql
Допустим, мы хотим, чтобы все автомобили, сгруппированные по маркам, отображали количество на каждую марку на графике.
Запрос без группировки должен выглядеть примерно так:
{
cars {
id,
brand
}
}
Таким образом, сумма для каждой торговой марки может быть рассчитана на стороне клиента. Но как это сделать на стороне сервера.
Например:
{
carMetrics(groupBy: "brand") {
group,
amount
}
}
Это вернет массив объектов, содержащий группу и количество автомобилей в этой группе.
Поскольку определение аргументов и результата является окончательным, мы должны создать новый запрос и тип для каждого объекта, который необходимо сгруппировать. Это правильный путь или есть более динамичный способ реализовать группу в GraphQL?






Я установил быстрый пример подхода, который я мог бы применить к чему-то вроде этого на стартовой панели Apollo: https://launchpad.graphql.com/w9740qm8wz. Вы можете использовать запрос внизу, чтобы проверить это (это не спасает вас).
Определения хотели бы этого
type Car {
id: ID
manufacturer: String
name: String
}
type Manufacturers {
name: String
cars: [Car]
}
type Query {
cars: [Car]
manufacturers: [Manufacturers]
}
И запросы выглядели бы примерно так:
{
cars {
...car
}
manufacturers {
name
cars{
...car
}
}
}
fragment car on Car {
id
manufacturer
name
}