首页 > 解决方案 > AppSync 连接到另一个 GraphQL

问题描述

我在自己的 GraphQL 中有这样的模式

type Query {
    getProduct(term: String!): Product
}

Product {
    name: String!
    orders(filter: OrderFilter): [Order!]!
}

Order {
    price: Float!
}

然后我可以使用字段别名进行这样的查询

getProduct(term: "example") {
    name
    aOrders: orders(filter: $A) {
        price
    }
    bOrders: orders(filter: $B) {
        price
    }
}

现在我需要使用 AppSync 公开 GraphQL。我不确定如何在 AppSync 中配置架构和解析器以继续利用字段别名功能。

我正在做的方式是为 AppSync 使用相同的架构并使用 Lambda 解析器从 AppSync 重建查询并将其传递给 GraphQL。

如果我使用上面相同的查询,从graphQL返回的数据将是这样的形式

{
    name: 'testing',
    aOrders: [{
        price: 123,
    }, {
        price: 456,
    }],
    bOrders: [{
        price: 123,
    }, {
        price: 456,
    }]
}

基本上,AppSync 架构中不存在 aOrders 和 bOrders,因此响应解析器无法映射数据。

标签: graphqlaws-appsync

解决方案


推荐阅读