如何在单个 API 调用中多次使用相同的 GraphQL 查询。放大,DynamoDB
Posted
技术标签:
【中文标题】如何在单个 API 调用中多次使用相同的 GraphQL 查询。放大,DynamoDB【英文标题】:How To Use The Same GraphQL Query Multiple Times In A Single API Call. Amplify, DynamoDB 【发布时间】:2020-11-11 02:59:37 【问题描述】:用户将输入多个用户名,我想在单个 API 调用中搜索我的 DynamoDB 表中的所有每个用户的 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-amplify 来帮助使用 dynamodb 和 graphql。这也是一个 React Native 项目。
【问题讨论】:
【参考方案1】:您可以使用 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
【讨论】:
以上是关于如何在单个 API 调用中多次使用相同的 GraphQL 查询。放大,DynamoDB的主要内容,如果未能解决你的问题,请参考以下文章
在单个单元格 google colab 中多次调用 matplotlib imshow() 时如何保留以前的图像?
如何将相同的多窗口函数组合为一个,并在查询中的任何需要的位置调用别名?