@as-integrations/next

中文文档
4.1.0发布于 2025/10/28MITTypeScriptCommonJS零依赖近 30 天下载 24.4万

用于 Next.js 的阿波罗服务器集成

中文使用文档
文档目录4 节
  1. 版本数
  2. 开始
  3. App 路由器( Route 处理器)
  4. 类型脚本

apollo-server-institution-next (英语)

与 Next.js 一起使用的阿波罗服务器集成.

版本数

  • 如果你使用阿波罗服务器 4.x 使用版本 3.x
  • 如果您使用阿波罗服务器 5.x 使用最新版本

开始

首先通过创建文件创建 Next.js API 路由 pages/api/graphql.js。 。 。 .
此 API 路由将在 /api/graphql。 。 。 .

接下来创建阿波罗服务器实例并传递给 startServerAndCreateNextHandler数字 :

import { ApolloServer } from '@apollo/server';
import { startServerAndCreateNextHandler } from '@as-integrations/next';
import { gql } from 'graphql-tag';

const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

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

export default startServerAndCreateNextHandler(server);

您也可以将上下文函数传递到 startServerAndCreateNextHandler 因此:

export default startServerAndCreateNextHandler(server, {
  context: async (req, res) => ({ req, res, user: await getLoggedInUser(req) }),
});

接下来的Js req 财务报告和审定财务报表 res 对象被传递到上下文函数.

App 路由器( Route 处理器)

首先通过例如创建文件创建 Next.js 路由处理器 app/api/graphql/route.js。 。 。 .
此路由处理器将在 /api/graphql。 。 。 .

下一个,创建阿波罗服务器实例,传递给 startServerAndCreateNextHandler 财务报告和审定财务报表
最后将处理器导出为 GET 和 POST :

import { startServerAndCreateNextHandler } from '@as-integrations/next';
import { ApolloServer } from '@apollo/server';
import { gql } from 'graphql-tag';

const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

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

const handler = startServerAndCreateNextHandler(server);

export { handler as GET, handler as POST };

类型脚本

当使用此与 Route Handlers 的集成时, 您必须指定来信对象的类型(Response 或者说 NextResponse为上下文函数接收正确的类型签名:

import { NextRequest } from 'next/server';

// req has the type NextRequest
const handler = startServerAndCreateNextHandler<NextRequest>(server, {
  context: async req => ({ req }),
});

版本与发布记录

@as-integrations/next 共发布 12 个版本,首次发布于 2022/11/08;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.1.0latest2025/10/281 年前
4.0.02025/07/221.3 年前
3.2.02024/11/082 年前
3.1.02024/07/312 年前
3.0.02023/11/063 年前
2.0.22023/08/203 年前

关于 @as-integrations/next 的常见问题

@as-integrations/next 是什么?

用于 Next.js 的阿波罗服务器集成

如何安装 @as-integrations/next?

在项目目录运行 npm install @as-integrations/next,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:next(^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0)、@apollo/server(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@as-integrations/next 支持 TypeScript 吗?

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

@as-integrations/next 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@as-integrations/next 需要什么版本的 Node.js?

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

@as-integrations/next 可以商用吗?

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

@as-integrations/next 的下载量有多少?

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

@as-integrations/next 还在维护吗?

最新版本 4.1.0 发布于 2025/10/28(1 年前);至今共发布 12 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/11/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。