Graphql Webhook使用express调用ApolloServer

Graphql Webhook使用express调用ApolloServer,graphql,stripe-payments,apollo,apollo-client,apollo-server,Graphql,Stripe Payments,Apollo,Apollo Client,Apollo Server,我有一台Apollo服务器在本地和Firebase云功能上运行 我想向它发送一个条带API webhook 我试着看看是否能找到关于如何直接调用服务器的文档,但我能找到的只是关于使用游乐场运行查询的文档 假设这是我的服务器: new ApolloClient({ uri: `localhost:4000/graphql`, cache: new InMemoryCache(), }); 这是我的服务器: import { ApolloServer } from "apollo

我有一台Apollo服务器在本地和Firebase云功能上运行

我想向它发送一个条带API webhook

我试着看看是否能找到关于如何直接调用服务器的文档,但我能找到的只是关于使用游乐场运行查询的文档

假设这是我的服务器:

new ApolloClient({
  uri: `localhost:4000/graphql`,
  cache: new InMemoryCache(),
});
这是我的服务器:

import { ApolloServer } from "apollo-server-express";
import express from "express";

import schema from "./schema";
import resolvers from "./resolvers";

import PaymentsAPI from "./datasources/payments";

const initServer = () => {
  const app = express();
  const server = new ApolloServer({
    typeDefs: schema,
    resolvers,
    dataSources: () => {
      return {
        paymentsAPI: new PaymentsAPI(),
      };
    },
    uploads: false,
    introspection: true,
    playground: true,
    context: async ({ req }) => {
      return {
        request: req,
      };
    },
  });
  server.applyMiddleware({ app, path: "/", cors: true });
  return app;
};

export default initServer;
如何在不使用操场的情况下向其发送post请求。。。例如,使用邮递员


还有我的第二个问题——我相信webhook将是我的PaymentsAPI数据源/解析器/模式中的另一个功能。我说得对吗?是突变吗?询问?我假设发生了变异,因为我将把一些数据保存到数据库?

您可能无法使用常规GraphQL端点作为条带事件的webhook端点。主要原因是GraphQL端点通常会预期具有查询字符串的特定结构的请求,并且应该主要在创建或修改服务器端资源时使用,而webhook端点通常不会这样做。使用firebase时,最常见的方法是创建firebase函数来接收Stripe中的事件:@ttmarek谢谢。这非常有用。@ttmarek my graphql是一个Firebase云函数。因此,您的意思是最好创建一个新的云函数,以便与graphql函数并行处理Stripe。是吗?是的,这是正确的-主要区别在于一个是GraphQL端点,另一个是从Stripe接受普通JSON事件的常规端点。