laravel - GraphQL GroupBy
问题描述
我试图弄清楚这是否可能,以及是否有最佳实践来完成。我们正在使用包https://github.com/Folkloreatelier/laravel-graphql在 Laravel 中实现 GraphQL API
假设我们希望按品牌分组的所有汽车在图表中显示每个品牌的数量。
没有分组的请求应该是这样的:
{
cars {
id,
brand
}
}
这样每个品牌的金额可以在客户端计算。但是如何在服务器端做到这一点。
例如:
{
carMetrics(groupBy: "brand") {
group,
amount
}
}
这将返回一个对象数组,其中包含该组中的汽车组和数量。
因为参数和结果的定义是最终的,我们必须为每个需要分组的对象创建一个新的查询和类型。这是要走的路还是有更动态的方法来在 GraphQL 中实现 group by?
解决方案
我设置了一个简单的示例,说明我可能会在 Apollo Launch pad 上采取类似的方法: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
}
推荐阅读
- content-management-system - 我们如何为多页网站的 drupal-8 结构创建可跨页面使用的通用组件?
- dialogflow-es - 如何在 Dialogflow 中为 Facebook Messenger 创建动态轮播?
- html - 主页链接指向与使用相同 ID 的导航栏链接略有不同的视图
- css - 反应悬停样式
- unity3d - 两个几乎相同的批处理脚本之一中的语法错误:“)”无法在此处进行语法处理
- amazon-web-services - 如何使用 AWS Route 53 中的域名在 ec2(Ubuntu 18.04)中配置 nginx
- javascript - 如何正确使用 ES6 进行咖喱?
- katalon-studio - 如何在 Katalon Studio 中开发代码以生成 HTML 报告?
- node.js - Mocha 在测试预期错误条件中抛出 Promise 拒绝错误。如何解决这个问题?
- tensorflow - 将 tensorflow 模型冻结为 .pb 文件