单独的 Graphql API url

Separate Graphql API urls

我们可以这样配置apollo-server-express

const server = new ApolloServer({
  typeDefs: schema,
  resolvers: resolvers,
  introspection: true,
  playground: true,
});

server.applyMiddleware({
  app,
  path: "/graphql"
});

此处 path 仅特定于一个端点。那么,是否可以使用 Node.js 和 Express 框架在 GraphQL(如 REST)中创建单独的 API 路由?

您可以为使用不同架构的不同 GraphQL 服务创建单独的独立端点。当您提供由不同类型的客户端使用的服务时,最常这样做。例如,您可能有一些 public 应用程序和一个单独的私有应用程序来管理 public 应用程序——而不是让这些应用程序共享一个模式,您可以使用两个单独的服务并让每个应用程序连接给他们自己的。同样,您可能拥有仅供您的应用程序使用的服务,然后您提供单独的 public API 供开发人员集成。

但是,您应该利用单独的端点任意分解模式。这样做你不会有任何收获,反而会导致不必要的重复,并使使用你的 API 的任何客户端的事情变得复杂,因为大多数 GraphQL 客户端库都需要一个 URL.