繁体   English   中英

如何在 GraphQL 服务器上接受来自远程服务器的 POST 请求

[英]How to accept POST request from a remote server on a GraphQL Server

我正在做一个目前使用 GrapQL 的项目。 我正在集成支付处理器,当用户支付成功时,支付处理器向 webhook URL 发送一个 POST 请求,该请求旨在指向我的服务器。 现在我想知道如何实现这一点,考虑到 GraphQL 只暴露一个端点,在我的例子中是/graphql 如何捕获进来的 POST 请求? 为了更好的上下文,

如果我使用的是 REST API,则在成功付款后,webhook 将发送带有付款数据的 POST 请求到/payment/verify 但是,如何使用 GraphQL 服务器实现此目的,将数据从 webhook 直接获取到 GraphQL 服务器中的解析器? 谢谢,期待您的回复。

除非支付处理器发送的 post 请求符合 graphql 请求的形式。 请求负载必须符合标准 GraphQL AST。 只有这样,您服务器端的 GraphQL 才能解析 AST,进行验证执行工作。

GraphQL 邮寄申请表为:

require('isomorphic-fetch');

fetch('http://localhost:4000', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query: `
    query {
      todos {
        edges {
          node {
            completed
            id
            text
          }
        }
      }
    }` 
  }),
})
.then(res => res.json())
.then(res => console.log(res.data));

您可以创建其他路由和端点以用作 webhook,但更好的方法是将 webhook function 提取到独立服务中。 连接数据库,执行业务逻辑,处理数据。

您的 GraphQL API 服务器只有一个端点/graphql用于 API 网关服务。 webhook 服务是后端服务之一。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM