【发布时间】:2018-04-13 17:03:32
【问题描述】:
graphQL 新手,我正在使用以下架构:
type Item {
id: String,
valueA: Float,
valueB: Float
}
type Query {
items(ids: [String]!): [Item]
}
我的 API 可以针对每种类型(A 和 B)的单个请求返回多个项目,但不能同时返回两个项目,即:
类型 A 的 REST 请求:api/a/items?id=[1,2]
回应:
[
{"id":1,"value":100},
{"id":2,"value":30}
]
类型 B 的 REST 请求:api/b/items?id=[1,2]
回应:
[
{"id":1,"value":50},
{"id":2,"value":20}
]
我想将这 2 个 api 端点合并到一个 graphQL 响应中,如下所示:
[
{
id: "1",
valueA: 100,
valueB: 50
},
{
id: "2",
valueA: 30,
valueB: 20
}
]
问:如何编写一个解析器,为每种类型运行 单个 提取(获得多个项目响应)以确保在查询时不会触发不必要的提取缺少类型ie:
{items(ids:["1","2"]) {
id
valueA
}}
上面的例子应该只获取api/a/items?id=[1,2],graphQL 响应应该是:
[
{
id: "1",
valueA: 100
},
{
id: "2",
valueA: 30
}
]
【问题讨论】:
标签: json rest api schema graphql