如果更改不是通过 GraphQL 进行的,GraphQL 订阅会推送更改吗?

Posted

技术标签:

【中文标题】如果更改不是通过 GraphQL 进行的,GraphQL 订阅会推送更改吗?【英文标题】:Will GraphQL subscriptions push changes if the change is made not through GraphQL? 【发布时间】:2020-11-13 04:11:56 【问题描述】:

如果我有一个类型:

type Todo 
  id: ID!
  name: String!
  desc: String!

以及创建和获取 Todo 对象列表的突变:createTodogetListTodo 到目前为止一切都很好。 我注意到,订阅说:

onCreateTodo, 仅作为 createTodo 的效果起作用。 如果我手动推送数据库中的记录,订阅不会推送新数据。

它应该是这样工作的吗? 我正在使用带有放大功能的 dynamodb 和 appsync。

【问题讨论】:

【参考方案1】:

它应该是这样工作的吗?

是的,它应该是这样工作的。 但是您可以通过使用数据库的native subscription(称为流)来实现所需的功能。您应该能够向订阅者发出更改,尽管这需要一些工作才能完成

【讨论】:

我通过带有 lambda 的 graphql 客户端路由了所有突变。适用于我的用例。

以上是关于如果更改不是通过 GraphQL 进行的,GraphQL 订阅会推送更改吗?的主要内容,如果未能解决你的问题,请参考以下文章

/graphql 处的递归错误。超出最大递归深度

打开graphql时couldnotfindconfig

如何创建基本客户端以通过 websockets 使用 GraphQL 订阅

如何通过 Graphql 模式生成 java 实体

将 GraphQL 模式拆分为 express-graphql 中不同模块的最佳方法?

身份验证Apollo Graphql for android