首页 > 解决方案 > 使用 AWS AppSync 和 Amplify 从 GraphQL 查询中获取自定义响应

问题描述

我对 GraphQL、Appsync 和 Amplify 非常陌生。我正在使用带有 Amplify 的 AWS AppSync 通过 GraphQL 查询从 DynamoDB 表中获取记录。前端在 ReactJS 中。查看 aws 文档上的一些示例,我似乎可以以 JSON 格式取回记录,就像它存储在表中一样。我想找到一些关于如何遍历返回的记录集并对返回的数据执行一些计算的文档或示例,然后再将其发送回客户端。但我无法将在线文档与我想要实现的目标联系起来。

例如。如果返回的 json 有 3 列,因为支持 DynamoDB 表中只有三列,但我想返回第四列,它是基于某些外部条件的计算值,该条件适用于从 graphql 查询响应返回的三列. 我需要使用什么样的解析器?我还希望能够向该查询发送一些参数,以便基于发送的参数我可以过滤掉响应,并且客户端只有在应用了自定义业务逻辑后才能看到数据。我应该创建一个调用 GraphQL Api 然后在该 API 中执行一些逻辑的 API,还是使用 DynamoDB 解析器或 Lambda 解析器或 GraphQL 解析器?Amplify 会生成 amplify 项目中的所有查询和突变,所以不确定我在哪里编写这些解析器。我需要所有这些逻辑来保持服务器端。我正在寻找一个调查的起点,除非有一个可用的工作示例可以帮助我遍历服务器端 GraphQL API 返回的记录并返回已自定义和过滤的数据。

谢谢你的帮助。

标签: reactjsamazon-web-servicesgraphqlaws-amplifyaws-appsync

解决方案


您可以在解析器中操纵您的响应。如果使用 VTL 解析器,请查看 $ctx.result,您可以使用它执行 vtl 支持的任何操作。您可以做的另一件事,如果您需要做一些除了一些基本的字符串操作 IMO 之外的任何事情,这是您最好的选择,那就是使用直接 Lambda 解析器。这允许您在解析器中执行任何您想要的任意代码。


推荐阅读