如何在单个 API 调用中多次使用相同的 GraphQL 查询。放大,DynamoDB
How To Use The Same GraphQL Query Multiple Times In A Single API Call. Amplify, DynamoDB
用户将输入多个用户名,我想在我的 DynamoDB table 中搜索单个 API 调用中所有每个用户的 ID。
以下是 graphql 用户模式的重要部分:
type User
@model
@key(name: "byName", fields: ["username"], queryField: "findUsername")
{
id: ID!
email: AWSEmail!
username: String!
firstName: String
lastName: String
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
我想创建一个查询,在单个 api 调用中获取用户名列表和 returns 每个用户的用户 ID。我不确定如何动态和单独地将用户名添加到查询中。顺便说一句,我正在使用 aws-amplify 来帮助处理 dynamodb 和 graphql。这也是一个 React Native 项目。
您可以 运行 使用 AWS AppSync 中的批处理操作进行多个查询和变更。例如:BatchGetItem
type Post {
id: ID!
title: String
}
type Query {
batchGet(ids: [ID]): [Post]
}
示例查询
query get {
batchGet(ids:[1,2,3]){
id
title
}
}
batchGet.request.vtl
#set($ids = [])
#foreach($id in ${ctx.args.ids})
#set($map = {})
$util.qr($map.put("id", $util.dynamodb.toString($id)))
$util.qr($ids.add($map))
#end
{
"version" : "2018-05-29",
"operation" : "BatchGetItem",
"tables" : {
"Posts": {
"keys": $util.toJson($ids),
"consistentRead": true
}
}
}
batchGet.response.vtl
$util.toJson($ctx.result.data.Posts)
有关详细信息,请查看本教程。
https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html
用户将输入多个用户名,我想在我的 DynamoDB table 中搜索单个 API 调用中所有每个用户的 ID。 以下是 graphql 用户模式的重要部分:
type User
@model
@key(name: "byName", fields: ["username"], queryField: "findUsername")
{
id: ID!
email: AWSEmail!
username: String!
firstName: String
lastName: String
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
我想创建一个查询,在单个 api 调用中获取用户名列表和 returns 每个用户的用户 ID。我不确定如何动态和单独地将用户名添加到查询中。顺便说一句,我正在使用 aws-amplify 来帮助处理 dynamodb 和 graphql。这也是一个 React Native 项目。
您可以 运行 使用 AWS AppSync 中的批处理操作进行多个查询和变更。例如:BatchGetItem
type Post {
id: ID!
title: String
}
type Query {
batchGet(ids: [ID]): [Post]
}
示例查询
query get {
batchGet(ids:[1,2,3]){
id
title
}
}
batchGet.request.vtl
#set($ids = [])
#foreach($id in ${ctx.args.ids})
#set($map = {})
$util.qr($map.put("id", $util.dynamodb.toString($id)))
$util.qr($ids.add($map))
#end
{
"version" : "2018-05-29",
"operation" : "BatchGetItem",
"tables" : {
"Posts": {
"keys": $util.toJson($ids),
"consistentRead": true
}
}
}
batchGet.response.vtl
$util.toJson($ctx.result.data.Posts)
有关详细信息,请查看本教程。 https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html