[英]AWS Amplify (GraphQL) - Using "graphqlOperation" vs Normal Query?
可能是一个简单的问题,但我最初一直在 AWS Amplify 中使用graphqlOperation
进行 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
进行引用。 我只是不确定它会带来什么好处。
谢谢! 吨
您不能将 graphqlOperation 与 authMode 一起使用。 只使用 API.graphql() 代替。
“之前的示例使用 graphqlOperation 函数。该函数仅创建一个具有两个属性查询和变量的对象。为了使用 authMode,您需要传递该对象,如之前示例中所述。”
请参阅配置授权模式
使用 graphqlOperation 的原因之一是如果您的方法 listMessages 有任何参数,您可以在 graphqlOperation(listMessages, {...params}) 的调用中传递这些参数
文档没有提到它,但你可以简单地做到这一点。 为我工作。
await API.graphql({
...graphqlOperation(createTodo, { input: todo }),
authMode: "AMAZON_COGNITO_USER_POOLS",
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.