如何在单个API调用中多次使用相同的GraphQL查询.Amplify,DynamoDB



用户将输入多个用户名,我想在DynamoDB表中搜索单个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调用中返回每个用户的用户id。我不知道如何动态地和单独地将用户名添加到查询中。顺便说一句,我正在使用aws放大来帮助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

最新更新