【发布时间】:2019-12-21 14:43:43
【问题描述】:
我的后端 REST API 采用 id 的列表并返回一个列表,例如,Person 对象的列表,其 id 被请求。每个Person 都有一个children 属性,它是Person.id 的列表。不错的家谱。
// GET /id/[1,2]
{
"id": 1,
"name": "Jacob",
"children": [3, 4]
},
{
"id": 2,
"name": "Jack",
"children": [5, 6]
}
使用 AppSync 来前置所述 API,我有一个 children 的解析器,它使用以下模板调用我的 API:
#set( $myMap = {
"id" : $context.source.children
} )
{
"version" : "2017-02-28",
"operation": "Invoke",
"payload": {
"id": $util.toJson($myMap)
}
}
这很好用,AppSync 很好地用适当的Person“解包”children 数组。问题是,如果 Person 有 N 孩子,那么如果客户端请求孩子,则会对我的后端 API 进行 N 调用。
由于我的 API 可以一次获取所有 N 子级的所有子级 ID,如果 AppSync 能够批量处理这些调用,然后以某种方式解开响应并将每个 Person 放入正确的地方。
问题
有没有办法将嵌套属性的所有单独调用批处理到每个嵌套级别的单个调用中?
编辑
上面示例的我的 GraphQL 架构:
type Person {
id: Int
name: String
children: [Person]
}
【问题讨论】:
标签: rest graphql aws-appsync