GraphQL-处理嵌套数据
我的数据架构如下:GraphQL-处理嵌套数据,graphql,Graphql,我的数据架构如下: { instrumentName: String, lastPrice { bid: Float, ask: Float } } 数据以Json格式存储在我的数据库中,如: { "instrumentName": "GOOGLE.N", "lastPrice": { "bid": 90.00, "ask": 105.00 } } 在GraphQL中,我必须将Gr
{
instrumentName: String,
lastPrice {
bid: Float,
ask: Float
}
}
数据以Json格式存储在我的数据库中,如:
{
"instrumentName": "GOOGLE.N",
"lastPrice": {
"bid": 90.00,
"ask": 105.00
}
}
在GraphQL中,我必须将GraphQL模式定义为:
type Instrument {
instrumentName: String
lastPrice: Price
}
type Price {
bid: Float
ask: Float
}
当我构建数据获取程序时,仪器获取程序很好。我只是从数据库中选取记录作为前面的示例数据。
但是,当它递归地获取价格时,由于买卖价格已经从仪器获取程序中的数据库中加载,我想知道是否有一种方法可以“告诉”价格获取程序以前的样本数据,例如,将数据放入价格获取程序的数据获取环境中?
或者我可以定义一个不同的(嵌套的)graphQL模式来处理这种情况吗?我目前正在使用apollo server,并且至少(不知道其他graphQL实现的情况),应该为您解决这个问题,所以只需要一个数据库获取,如果您的
仪器
取数器返回完整的数据结构:
const resolvers = {
Query: {
instrument: (parent, args, context, info) => {
instrumentName: "GOOGLE.N",
lastPrice: {
bid: 90.00,
ask: 105.00
}
}
},
// Following resolver should not be needed as will be handled by default resolver
// Instrument: {
// lastPrice: (parent, args, context, info) => {
// ...
// }
// }
}
如果您使用的不是apollo server,我不确定上述情况是否成立。我使用的是GraphQL java。最后我发现所有的东西都可以递归地描述为映射。所以它现在起作用了。谢谢你,约翰:)