我将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进行查询的示例,所以我想知道是否有人可以对此语法进行一些介绍,提供示例或为我提供良好参考的方向为了这?预先谢谢你。
答案 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);