服务端订阅

本文属使用Prisma构建GraphQL服务系列。

介绍

服务器端订阅与正常的GraphQL订阅相当。这意味着它们具有相同的API,例如允许提供相同的过滤器,以便仅通知您感兴趣的事件。

当设置服务器端订阅时,Prisma将监视数据更改并在适用时执行关联的查询,就像正常的GraphQL订阅一样。不同的是交付机制。

服务器端订阅旨在与现代无服务器基础架构配合使用。目前,Prisma支持通过webhook传递事件,并且将来我们将增加对直接AWS Lambda调用的支持以及不同的队列实现。

配置

您可以通过在您的服务的prisma.yml文件中添加subscriptions属性来配置服务器端订阅。

prisma.yml

service: my-service

stage: ${env:PRISMA_STAGE}
secret: ${env:PRISMA_SECRET}
cluster: ${env:PRISMA_CLUSTER}

datamodel: database/datamodel.graphql

subscriptions:
  userChangedEmail:
    webhook:
      url: http://example.org/sendSlackMessage
      headers:
        Content-Type: application/json
        Authorization: Bearer cha2eiheiphesash3shoofo7eceexaequeebuyaequ1reishiujuu6weisao7ohc
    query: |
      subscription {
        user(where: {
          mutation_in: [UPDATED]
        }) {
          node {
            name
            email
          }
        }
      }

示例

上面配置的userChangedEmail订阅会被类似这样的变化触发:

mutation {
  updateUser(
    data: { email: "new@email.com" },
    where: { id: "cjcgo976g5twb018740bzyy4q" }
  ) {
    id
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文属使用Prisma构建GraphQL服务系列。 概述 Prisma使用GraphQL Schema Defi...
    guog阅读 5,309评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 本文属使用Prisma构建GraphQL服务系列。 每个GraphQL API的核心:GraphQL schema...
    guog阅读 10,355评论 4 1
  • 本文属使用Prisma构建GraphQL服务系列。 应用层和数据库层分离 两个GraphQL API层 在使用Pr...
    guog阅读 4,853评论 3 0
  • 近一年最深的感触莫过于此了,所谓的成长就是在逆境中不断的觉知与自我接纳而产生的。 记得在这之前,我曾经因工作上与同...
    70珊妮阅读 3,385评论 0 1