Группа GraphQL

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

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

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

{
  cars {
    id,
    brand
  }
}

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

Например:

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
2
0
4 287
1

Ответы 1

Я установил быстрый пример подхода, который я мог бы применить к чему-то вроде этого на стартовой панели 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
}

Другие вопросы по теме