# @aglyn/shared-util-rest-api 中文文档

规范地址：https://npmcn.com/package/%40aglyn/shared-util-rest-api/

版本：1\.19\.0
npm 元数据更新时间：2026-11-07T13:59:59.029Z
中文译文更新时间：2026-11-05T23:37:50.503Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aglyn/shared-util-rest-api
原文对照：https://npmcn.com/package/%40aglyn/shared-util-rest-api/?lang=original
项目主页：https://aglyn.com/
源码仓库：https://github.com/aglyn/aglyn

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：74 kB，40 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：7 个
- peer 依赖：next ^16\.3\.3
- 首次发布：2026-09-20T23:54:48.242Z
- 最新版本发布：2026-11-07T13:59:58.680Z
- 近 30 天下载量：9342（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：153（近 12 个月 153 个）

## 中文简介

帮助在 Next.js 中编写 JSON API 路由 : 两个Pages 路由器的一个响应信封(`NextApiResponse`)和App路由器(Web) `Response`),外加小中件和饼干的公用事业. 主要作为Aglyn自己的应用软件的构件出版;

## 安装

```sh
npm install @aglyn/shared-util-rest-api
```

也可以使用：`pnpm add @aglyn/shared-util-rest-api`、`yarn add @aglyn/shared-util-rest-api`、`bun add @aglyn/shared-util-rest-api`

## README

# @aglyn/ shared- util- rest- api

帮助在 Next.js 中编写 JSON API 路由 : 两个Pages 路由器的一个响应信封(`NextApiResponse`)和App路由器(Web) `Response`),外加小中件和饼干的公用事业. 主要作为Aglyn自己的应用软件的构件发布;可用于任何需要同个信封的Next.js项目.

> 从Aglyn monorepo出版到npm. 随后的版本 [语义版本](https://semver.org/)。 。 。 .

## 安装

```
npm install @aglyn/shared-util-rest-api
```

同伴依赖 : `next` (单位:千美元)`16.3.3`) (中文(简体) ).

## 里面有什么东西

从套件根导出所有文件; 每个模块也可以达到 `@aglyn/shared-util-rest-api/<file-name>`。 。 。 .

那个信封, `JsonResponse`数字 :

```ts
type JsonResponse = {
  error?: any
  errorCode?: HttpRefCode
  status?: HttpResponseStatus | true
  statusCode?: HttpStatusCode
  statusMessage?: string
  data?: any
}
```

-   App 路由器( R)`route.ts`: `appHandleJsonResponse(statusCode, options?)`, (中文(简体) ), `appHandleJsonSuccess(data)`, (中文(简体) ), `appHandleJsonError(error)` - 每个返回一个 `Response`。 。 。 .
-   页面路由器 : `nextHandleJsonResponse(res, statusCode, options?)`, (中文(简体) ), `nextHandleJsonSuccess(res, data)`, (中文(简体) ), `nextHandleJsonError(res, error)` - 每个写给一个 `NextApiResponse`. . 两个家庭在电线上都装了同样的形状. 错误变体从 `error.code` 或者说 `error.statusCode` (默认500)和来自 `error.message` 或者说 `error.statusMessage`。 。 。 .
-   `createNewJsonResponse(statusCode, options?)` - 一个赤裸的 `Response` 带有 JSON 内容类型,用于中间软件.
-   `httpRequestMethodMiddleware(allowed)` - 一个 `next-api-middleware` 答405的中件,用于非允许的方法(`OPTIONS` 总是通过).
-   `initializeMiddleware(middleware)` - 包裹连接样式 `(req, res, next)` 在一个承诺的中间软件.
-   `requireHeader(name, key, handler)` 财务报告和审定财务报表 `withIdTokenHeader(handler)` - 包裹一个 Pages 路由器处理器,并在标题时回答 400(`id-token` 后者)缺失.
-   `getApiRequestCookie(name, request?)` 财务报告和审定财务报表 `setApiResponseCookie(res, name, value, options?)`。 。 。 . `setApiResponseCookie` 带 `maxAge` 对象值序列化为 `j:` 还有JSON.

## 使用量

```ts
// app/api/things/route.ts
import {
  appHandleJsonError,
  appHandleJsonSuccess,
} from '@aglyn/shared-util-rest-api'

export async function GET() {
  try {
    return appHandleJsonSuccess({ things: [] })
  } catch (error) {
    return appHandleJsonError(error)
  }
}
```

请注意: `appHandleJsonError` 财务报告和审定财务报表 `nextHandleJsonError` 将错误对象本身包含在体内,所以将安全显示的错误传递给呼叫者.

## 怎样才合适

A 类 `shared` 软件包:通用,对Aglyn的模型一无所知。 共享软件包只能导入其他共享软件包; 此软件包取决于 `@aglyn/shared-data-enums` (状态代码和参考代码), `@aglyn/shared-util-errors` 财务报告和审定财务报表 `@aglyn/shared-util-http`. monrepo中没有任何其他库依赖于它; Aglyn的应用软件在他们的API路线中使用了它.

## 许可证

阿帕奇2.0 (英语). 资料来源: [https://github.com/aglyn/aglyn/tree/main/libs/shared/util/rest-api 互联网档案馆的存檔,存档日期2014-12-21](https://github.com/aglyn/aglyn/tree/main/libs/shared/util/rest-api)

## 常见问题

### @aglyn/shared-util-rest-api 是什么？

帮助在 Next\.js 中编写 JSON API 路由 : 两个Pages 路由器的一个响应信封\(NextApiResponse\)和App路由器\(Web\) Response\),外加小中件和饼干的公用事业\. 主要作为Aglyn自己的应用软件的构件出版;

### 如何安装 @aglyn/shared-util-rest-api？

在项目目录运行 npm install @aglyn/shared-util-rest-api，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：next（^16\.3\.3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aglyn/shared-util-rest-api 支持 TypeScript 吗？

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

### @aglyn/shared-util-rest-api 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aglyn/shared-util-rest-api 可以商用吗？

@aglyn/shared-util-rest-api 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aglyn/shared-util-rest-api 的下载量有多少？

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

### @aglyn/shared-util-rest-api 还在维护吗？

最新版本 1\.19\.0 发布于 2026/11/07（今天）；至今共发布 153 个版本，其中过去 12 个月发布了 153 个；首次发布于 2026/09/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

