@aglyn/shared-util-rest-api

中文文档
1.19.0发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 9342

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

中文使用文档
文档目录5 节
  1. 安装
  2. 里面有什么东西
  3. 使用量
  4. 怎样才合适
  5. 许可证

@aglyn/ shared- util- rest- api

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

从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .

安装

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

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

里面有什么东西

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

那个信封, JsonResponse数字 :

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.

使用量

// 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

版本与发布记录

@aglyn/shared-util-rest-api 共发布 153 个版本,首次发布于 2026/09/21;过去 12 个月发布了 153 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.19.0latest2026/11/07今天
1.18.02026/11/07今天
1.17.02026/11/07今天
1.16.02026/11/07今天
1.15.22026/11/061 天前
1.15.12026/11/061 天前

其他发布通道:beta → 1.0.0-beta.296。

关于 @aglyn/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 和提交记录判断。