AWS Amplify (GraphQL) - 使用“graphqlOperation”与普通查询?
Posted
技术标签:
【中文标题】AWS Amplify (GraphQL) - 使用“graphqlOperation”与普通查询?【英文标题】:AWS Amplify (GraphQL) - Using "graphqlOperation" vs Normal Query? 【发布时间】:2021-01-25 12:26:18 【问题描述】:可能是一个简单的问题,但我最初一直在使用 graphqlOperation
在 AWS Amplify 中进行 API 查询。最近我开始使用 Cognito 用户池。在我的一生中,我无法将authMode
传递给它并最终使用了普通查询。
## normal query - works
await API.graphql(query: listForms, authMode: 'AMAZON_COGNITO_USER_POOLS');
## using graphqlOperation - does not work (Unauthorized)
await API.graphql(graphqlOperation(listForms, authMode: 'AMAZON_COGNITO_USER_POOLS' ));
我可以使用普通查询,但我想知道如果普通查询似乎就足够了,你为什么还要使用 graphqlOperation
类?它们似乎都返回相同的有效载荷。大多数文档似乎都使用graphqlOperation
进行引用。我只是不确定它会带来什么好处。
谢谢! T
【问题讨论】:
【参考方案1】:您不能将 graphqlOperation 与 authMode 一起使用。请改用 API.graphql()。
“前面的例子使用了 graphqlOperation 函数。这个函数只创建一个有两个属性查询和变量的对象。为了使用 authMode,你需要像前面例子中提到的那样传递这个对象。”
见Configure authorization modes
【讨论】:
以上是关于AWS Amplify (GraphQL) - 使用“graphqlOperation”与普通查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 aws amplify 中使用 graphQL 限制
@connection 上的 AWS Amplify Graphql 查询
通过 GraphQL 键检索 AWS Amplify DataStore 记录