如何在AWS Amplify的GraphQL AppSync中指定查询返回字段?
在AWS Amplify GraphQL中指定查询返回字段
当然可以只返回特定字段,给你两种实用方法:
方法1:修改自动生成的查询文件
Amplify通过amplify codegen生成的查询默认会返回schema里的所有字段,你可以手动修改对应的查询文件来精简返回字段:
- 找到项目中的
src/graphql/queries.js文件 - 定位到
getResponse查询,删除不需要的字段,只保留你需要的内容。比如:
原自动生成的查询:
修改后(仅保留query GetResponse($id: ID!) { getResponse(id: $id) { id title content createdAt updatedAt } }id和title):query GetResponse($id: ID!) { getResponse(id: $id) { id title } } - 保存文件后,再调用
queries.getResponse就只会返回你指定的字段了
注意:每次运行
amplify codegen命令时,生成的文件会被覆盖,如果你需要长期保留自定义字段,要么每次生成后重新修改,要么用下面的方法2。
方法2:直接使用自定义GraphQL查询
如果你不想修改自动生成的文件,可以直接在API调用中写自定义查询语句,指定需要的字段:
const fetchResponse = async () => { const oneResponse = await API.graphql({ query: `query GetResponse($id: ID!) { getResponse(id: $id) { id title } }`, variables: { id: responseId }, }); console.log(oneResponse.data.getResponse); };
这种方式更灵活,适合临时需求或者不想改动自动生成代码的场景。
内容的提问来源于stack exchange,提问作者howranwin
相关产品推荐
相关产品推荐

