【发布时间】:2018-05-05 11:50:19
【问题描述】:
我刚刚开始探索 GraphQL 作为我的分析平台 API 层的一个选项。
我的 UI 主要是由表格和图表构建的。大多数情况下,数据代表按维度分组的一些数据库列。
我从 Microsoft 找到了以下文章 https://www.microsoft.com/developerblog/2017/09/28/data-independent-graphql-using-view-model-based-schemas/,描述了他们对如何设计糟糕的 GraphQL 架构的看法(见下文)。
type Query {
channels(source: String!, query:String!, appId:String!, apiKey:String!): [Channel]
lineCharts(source: String!, query:String!, appId:String!, apiKey:String!, filterKey:String, filterValues:[String]): [LineChart]
pieCharts(source: String!, query:String!, appId:String!, apiKey:String!): [PieChart]
barCharts(source: String!, query:String!, appId:String!, apiKey:String!, filterKey:String, filterValues:[String]): [BarChart]
}
type Channel {
name: String
id: Int
}
type LineChart {
id: String
seriesData : [Series]
}
type PieChart {
id: String
labels: [String]
values: [Int]
}
type BarChart {
id: String
seriesData : [Series]
}
type Series {
label: String
x_values: [String]
y_values: [Int]
}
在我看来,这种设计很严格,强制将任何新图表添加到根查询中。如何在不失去 GraphQL 优势的情况下使架构更通用?
【问题讨论】: