AWS Appsync Javascript查询示例和输入语法

时间:2020-01-14 23:30:05

标签: graphql aws-amplify aws-appsync

我将Amplify和Appsync用于正在构建的React应用。现在,我正在尝试查询用户,并且正在使用appsync客户端:

const client = new AWSAppSyncClient({
  url: awsconfig.aws_appsync_graphqlEndpoint,
  region: awsconfig.aws_appsync_region,
  auth: {
    type: awsconfig.aws_appsync_authenticationType,
    jwtToken: async () => (await Auth.currentSession()).getIdToken().getJwtToken()
  },
  complexObjectsCredentials: () => Auth.currentCredentials()
});

我已经能够使用扩增网站上提供的示例成功运行突变

const result = await client.mutate({
    mutation: gql(createTodo),
    variables: {
      input: {
        name: 'Use AppSync',
        description: 'Realtime and Offline',
      }
    }
  });

但是在使用客户端运行查询时,他们提供的唯一示例是列表操作

const result = await client.query({
    query: gql(listTodos)
  });

他们没有提供有关如何通过特定ID进行查询的示例,所以我想知道是否有人可以对此语法进行一些介绍,提供示例或为我提供良好参考的方向为了这?预先谢谢你。

1 个答案:

答案 0 :(得分:2)

与变异示例没有太大区别,请参见以下代码:

const getBlog = `query GetBlog($id: ID!) {
  getBlog(id: $id) {
    id
    title
    content
    author
  }
}
`;


使用参数运行查询

   const result = await client.query({
        query: gql(getBlog),
        variables: { id: '0002b432-157a-4b6a-ad67-6a8693e331d1' }
             });
      console.log(result.data.getBlog);



  const input = { id: '0002b432-157a-4b6a-ad67-6a8693e331d1' }
      const result = await client.query({
              query: gql(getBlog),
              variables: input
                                   });
      console.log(result.data.getBlog);