使用 Amazon api gateway 通过 REST API 包装 graphQL(appsync)

BSD*_*BSD 5 amazon-web-services graphql aws-api-gateway aws-appsync

我有一个使用 aws appsync 部署的 graphQL 服务器。问题是我们的客户更喜欢标准的 REST API。我正在寻找使用 REST API 包装 graphQL 查询的最简单方法。

我正在考虑使用 Amazon api gateway 来创建 REST 端点,并将 lambda 集成到 api gateway 后面。通过这种方式,我可以让 lambda 函数发送固定的 graphQL 查询/突变并修改响应。

不过,正如您从下图中看到的,我在 Amazon API gateway 中找到了 AWS 服务集成选项。我想知道是否可以在不使用 lambda 的情况下直接将 appsync 集成到 api 网关。我从aws文档中搜索了它,但找不到任何相关信息。

Amazon api 网关设置捕获:

Amazon api 网关设置捕获

  1. 是否可以通过将 appsync 集成到 api 网关而不使用 lambda 来将 graphQL API 与 REST API 包装?就像我从捕获的图像中发现的那样?
  2. 如果是的话,有没有例子或教程?
  3. 如果没有,我应该集成 lambda 吗?有没有更好的想法或技巧?

BSD*_*BSD 2

我找到了如何将 appsync 集成到 API 网关。您可以通过将 AWS 服务集成设置为 AppSync 数据平面来实现此目的。

在方法设置页面中:

  1. 集成类型 = AWS 服务

  2. AWS 服务 = AppSync 数据平面

  3. AWS 子域 = 从您的 appsync 终端节点获取(例如: https://YOUR_AWS_Subdomain.appsync-api.your-region.amazonaws.com/graphql

  4. HTTP 方法 = POST

  5. 操作类型 = 使用路径覆盖

  6. 路径覆盖(可选)= graphql

这对我来说效果很好。