繁体   English   中英

AWS Amplify (GraphQL) - 使用“graphqlOperation”与普通查询?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM