GraphQL GroupBy - PullRequest
       6

GraphQL GroupBy

0 голосов
/ 13 июня 2018

Я пытаюсь выяснить, возможно ли это и есть ли лучшая практика для этого.Мы внедряем API GraphQL в Laravel, используя пакет https://github.com/Folkloreatelier/laravel-graphql

Допустим, мы хотим, чтобы все автомобили, сгруппированные по маркам, отображали количество по марке на графике.

Запрос без группировки должен выглядеть примерно так:

{
  cars {
    id,
    brand
  }
}

Таким образом, сумма на бренд может быть рассчитана на стороне клиента.Но как это сделать на стороне сервера.

Например:

{
  carMetrics(groupBy: "brand") {
    group,
    amount
  }
}

Это вернет массив объектов, содержащий группу и количество автомобилей в этой группе.

Поскольку определение аргументов и результата является окончательным, мы должны создать новый запрос и тип для каждого объекта, который необходимо сгруппировать.Это путь или есть более динамичный способ реализации группы в GraphQL?

1 Ответ

0 голосов
/ 12 декабря 2018

Я установил быстрый пример подхода, который я мог бы применить к чему-то подобному, на панели запуска Apollo: https://launchpad.graphql.com/w9740qm8wz. Вы можете использовать запрос внизу, чтобы проверить его (он не сохраняется дляyou).

Определения должны выглядеть так:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...