首页 > 解决方案 > Webhook 使用 express 调用 ApolloServer

问题描述

我有一个在本地和 Firebase 云功能上运行的 ApolloServer。

我想向它发送一个 Stripe API webhook。

我试图查看是否可以找到有关如何直接调用服务器的文档,但我只能找到有关使用 Playground 运行查询的文档。

假设这是我的 ApolloServer:

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;

如何在不使用操场的情况下向其发送发布请求……例如,使用 Postman。

我的第二个问题 - 我相信 webhook 将成为我的 PaymentsAPI 数据源/解析器/模式中的另一个功能。我对吗?是突变吗?一个问题?我假设突变,因为我会将一些数据保存到数据库中?

标签: graphqlstripe-paymentsapolloapollo-clientapollo-server

解决方案


推荐阅读