@cap-js/openapi

中文文档
1.7.0发布于 2026/10/06Apache-2.0CommonJS构建来源已验证近 30 天下载 56.6万

OpenAPI 的 CAP 工具

中文使用文档
文档目录8 节
  1. 关于这个项目
  2. 目录
  3. 要求和设置
  4. 安装
  5. 使用量
  6. 捐款
  7. 行为守则
  8. 许可证发放

REUSE status

打开API

关于这个项目

这个 @cap-js/openapi 是支持 OpenAPI 文档汇编的软件包.

目录

要求和设置

安装

$ npm install @cap-js/openapi

使用量

const cds = require('@sap/cds')
const { compile } = require('@cap-js/openapi')
const csn = await cds.load(cds.env.folders.srv)
const openapiDocument = compile(csn)

自定义 OpenAPI 输出

您可以使用 after:compile.to.openapi 修改生成的 OpenAPI 文档的事件 :

cds.on('after:compile.to.openapi', ({ csn, options, result }) => {
  // Add custom vendor extensions
  result['x-api-id'] = 'my-api-id'

  // Enhance the info section
  result.info.contact = {
    name: 'API Support',
    email: '[email protected]'
  }
  result.info.license = {
    name: 'Apache 2.0',
    url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
  }

  // Add additional servers for different environments
  result.servers.push({
    url: 'https://api-dev.example.com',
    description: 'Development server'
  })
})

事件处理器接收对象有:

  • csn - 输入式MSN模型
  • options - 使用的汇编选项
  • result - 生成的 OpenAPI 文档(可以通过参考修改)

同样,您也可以订阅 compile.to.openapi中,在转换前修改 CNN :

cds.on('compile.to.openapi', ({ csn, options }) => {
  // exclude MySecretEntity from output
  delete csn.definitions.MySecretEntity
})

事件的处理者永远不应该同步以避免处理者与转换过程之间的种族条件!

捐款

此项目可通过下列方式对特性请求/建议、错误报告等开放: GitHub 问题鼓励并始终欢迎各方作出贡献和反馈。 关于如何作出贡献的更多信息,项目结构以及额外贡献信息见我们 贡献准则。 。 。 .

行为守则

作为成员、贡献者和领导人,我们保证使参加我们的社区成为每个人不受骚扰的经历。 通过参与这个项目,你同意遵守 行为守则 在任何时间.

许可证发放

版权2023 SAP SE或SAP下属公司和贡献者。 请看我们的 自由主义 版权和许可证信息。 详细信息,包括第三方组成部分及其许可证/版权信息 通过REUSE工具。 。 。 .

版本与发布记录

@cap-js/openapi 共发布 23 个版本,首次发布于 2024/05/02;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.7.0latest2026/10/061 个月前
1.6.02026/08/043 个月前
1.5.02026/06/134 个月前
1.4.22026/05/185 个月前
1.4.12026/05/185 个月前
1.4.02026/03/187 个月前

关于 @cap-js/openapi 的常见问题

@cap-js/openapi 是什么?

OpenAPI 的 CAP 工具

如何安装 @cap-js/openapi?

在项目目录运行 npm install @cap-js/openapi,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@sap/cds(>=7.6)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cap-js/openapi 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cap-js__openapi 是否存在。

@cap-js/openapi 支持 ESM 还是 CommonJS?

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

@cap-js/openapi 可以商用吗?

@cap-js/openapi 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cap-js/openapi 的下载量有多少?

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

@cap-js/openapi 还在维护吗?

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