@apollo/server

中文文档
5.5.1发布于 2026/05/06MITTypeScriptESM + CJS构建来源已验证近 30 天下载 1265.3万

阿波罗 GraphQL 服务器的核心引擎

中文使用文档
文档目录4 节
  1. 一个 TypeScript/ JavaScript 图形QL 服务器
  2. 文档
  3. 开始: 独立的服务器
  4. 开始: 执行中间软件

@apollo/server

这个 @apollo/server 软件包是自阿波罗服务器 4 以来的新软件包 。 以前阿波罗服务器的主要版本使用了一套从 apollo-server,例如 apollo-server, (中文(简体) ), apollo-server-express, (中文(简体) ), apollo-server-core等 (中文(简体) ).

npm version Build Status Join the community


通知: 在阿波罗2025年的GraphQL峰会上加入1000+工程师进行会谈,作坊和办公时间. 2025年10月6日至8日在旧金山举行. 过来这里 - >


一个 TypeScript/ JavaScript 图形QL 服务器

阿波罗服务器是一个 开源,符合光谱的 GraphQL 服务器 兼容任意 GraphQL 客户端,包括 阿波罗客户端。这是构建一个可使用来自任何来源的数据的可制取的自文件化GraphQL API的最佳方法.

您可以使用阿波罗服务器作为 :

  • 一个独立的 GraphQL 服务器
  • A 的 GraphQL 服务器 子图 在联邦超级图中
  • 一个入口 联邦超级图

阿波罗服务器提供了一个简单的API,用于与任何节点.js的网络框架或无服务器环境相融合. 这个 @apollo/server 包件本身载有一个最小可配置的独立网络服务器,处理 CORS 和身体解析出框。 与其他环境的融合由社区维持.

阿波罗服务器提供:

  • 直走设置,因此您的客户端开发者可以快速开始获取数据
  • 逐步通过,使您能够添加 功能,因为需要
  • 通用兼容性 包含任何数据源、任何构建工具以及任何 GraphQL 客户端
  • 生产准备,使您能够自信地运行您的图表在制作中

文档

阿波罗服务器的完整文档可在 我们的文件网站。这个 README 显示服务器运行的基本原理( 既独立运行, 也与 Express 运行) , 但大多数特性只记录在我们的文件网站上 .

开始: 独立的服务器

也可以检查 开始中 在阿波罗服务器文档中提供更多细节的指南,包括TypeScript和JavaScript中的例子.

阿波罗服务器的独立服务器可以让你得到一个GraphQL服务器并快速运行,而不需要自己建立HTTP服务器. 它允许GraphQL逻辑和Express集成一样的所有配置,但不能提供将精细的纹理切入您服务器的HTTP特定行为的能力.

首先,安装阿波罗服务器和JavaScript执行核心GraphQL算法:

npm install @apollo/server graphql

然后,写下以下 server.mjs. (使用 .mjs 扩展名,节点允许您使用 await 顶级关键字. )

import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const server = new ApolloServer({
  typeDefs,
  resolvers,
});

const { url } = await startStandaloneServer(server);
console.log(`🚀 Server ready at ${url}`);

现在运行您的服务器 :

node server.mjs

打开它在网页浏览器中打印的 URL 。 它会显示 阿波罗沙盒,用于运行 GraphQL 操作的网络工具。 尝试运行操作 query { hello }来啊!

开始: 执行中间软件

阿波罗服务器的"快递"中间软件允许您运行您的 GraphQL 服务器,作为应用软件的一部分 快递,最受欢迎的节点网络框架.

首先,安装阿波罗服务器,它的Express中间软件,JavaScript执行核心GraphQL算法,Express,以及用于CORS头的标准Express中间软件包:

npm install @apollo/server @as-integrations/express5 graphql express cors

如果使用 Typescription, 您可能还需要安装额外的类型声明包作为开发依赖, 以避免在导入上述软件包时出现常见错误( 即找不到模块的声明文件 ) cors':

npm install --save-dev @types/cors @types/express

然后,写下以下 server.mjs. (使用 .mjs 扩展名,节点允许您使用 await 顶级关键字. )

import { ApolloServer } from '@apollo/server';
import { expressMiddleware } from '@as-integrations/express5';
import { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer'
import express from 'express';
import http from 'http';
import cors from 'cors';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const app = express();
const httpServer = http.createServer(app);

// Set up Apollo Server
const server = new ApolloServer({
  typeDefs,
  resolvers,
  plugins: [ApolloServerPluginDrainHttpServer({ httpServer })],
});
await server.start();

app.use(
  cors(),
  express.json(),
  expressMiddleware(server),
);

await new Promise((resolve) => httpServer.listen({ port: 4000 }, resolve));
console.log(`🚀 Server ready at http://localhost:4000`);

现在运行您的服务器 :

node server.mjs

打开它在网页浏览器中打印的 URL 。 它会显示 阿波罗沙盒,用于运行 GraphQL 操作的网络工具。 尝试运行操作 query { hello }来啊!

版本与发布记录

@apollo/server 共发布 80 个版本,首次发布于 2019/09/07;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.5.1latest2026/05/066 个月前
5.5.02026/03/257 个月前
5.4.02026/02/049 个月前
4.13.02026/02/049 个月前
5.3.02026/01/219 个月前
5.2.02025/11/2211 个月前

其他发布通道:next-v3 → 3.0.0-alpha.3,alpha → 4.12.2-alpha.0,rc → 5.1.0-rc.0。

关于 @apollo/server 的常见问题

@apollo/server 是什么?

阿波罗 GraphQL 服务器的核心引擎

如何安装 @apollo/server?

在项目目录运行 npm install @apollo/server,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:graphql(^16.11.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@apollo/server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@apollo/server 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@apollo/server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@apollo/server 可以商用吗?

@apollo/server 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@apollo/server 的下载量有多少?

根据 npm 官方下载统计,@apollo/server 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,652,579 次,日均约 421,753 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@apollo/server 还在维护吗?

最新版本 5.5.1 发布于 2026/05/06(6 个月前);至今共发布 80 个版本,其中过去 12 个月发布了 6 个;首次发布于 2019/09/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。