如何使用 Lambda 创建 GraphQL 子解析器
How to create GraphQL Child Resolvers with Lambda
我正在尝试创建一个变更,如果传入可选参数,除了父解析器之外,它还会调用子解析器。
我正在使用 AWS AppSync 将我的查询发送到 Lambda。 AppSync 创建并发送一个 AppSyncEvent
到我的解析器文件,看起来像这样:
{
"info": {
"parentTypeName": "Mutation",
"selectionSetList": [
...
],
"selectionSetGraphQL": "...",
"fieldName": "updateUser",
"variables": {}
}
}
这个事件被传递到我的 lambda 函数,根据 fieldName
和 parentTypeName
,我调用我的 updateUser
函数。
我有以下架构
schema {
query: Query
mutation: Mutation
}
type Query {
getUser(id: ID!): User
}
type Mutation {
updateUser(name: String, email: String, bookRead: BookReadInput): User
}
type User {
name: String
email: String
booksRead: [Book]
}
type Book {
title: String
author: String
}
type BookReadInput {
title: String
author: String
}
我希望如果突变通过 bookRead
那么它会知道调用一个名为 addBook
的子解析器,除了常规 updateUser
解析器。
我看过各种关于实现子解析器的文章,但我无法弄清楚它们如何使用 lambda 以及我的解析器的工作方式。
lambda 可以检查 selectionSetList 并决定如何处理 BookReadInput 字段。
参见 https://aws.amazon.com/blogs/mobile/appsync-and-the-graphql-info-object/
您也可以使用管道解析器先更新用户,然后再添加图书。
我认为没有办法让它自动化。您需要以一种或另一种方式进行设置。
我正在尝试创建一个变更,如果传入可选参数,除了父解析器之外,它还会调用子解析器。
我正在使用 AWS AppSync 将我的查询发送到 Lambda。 AppSync 创建并发送一个 AppSyncEvent
到我的解析器文件,看起来像这样:
{
"info": {
"parentTypeName": "Mutation",
"selectionSetList": [
...
],
"selectionSetGraphQL": "...",
"fieldName": "updateUser",
"variables": {}
}
}
这个事件被传递到我的 lambda 函数,根据 fieldName
和 parentTypeName
,我调用我的 updateUser
函数。
我有以下架构
schema {
query: Query
mutation: Mutation
}
type Query {
getUser(id: ID!): User
}
type Mutation {
updateUser(name: String, email: String, bookRead: BookReadInput): User
}
type User {
name: String
email: String
booksRead: [Book]
}
type Book {
title: String
author: String
}
type BookReadInput {
title: String
author: String
}
我希望如果突变通过 bookRead
那么它会知道调用一个名为 addBook
的子解析器,除了常规 updateUser
解析器。
我看过各种关于实现子解析器的文章,但我无法弄清楚它们如何使用 lambda 以及我的解析器的工作方式。
lambda 可以检查 selectionSetList 并决定如何处理 BookReadInput 字段。 参见 https://aws.amazon.com/blogs/mobile/appsync-and-the-graphql-info-object/
您也可以使用管道解析器先更新用户,然后再添加图书。
我认为没有办法让它自动化。您需要以一种或另一种方式进行设置。