@funboxteam/crafter

中文文档
6.0.2发布于 2023/06/30Apache-2.0CommonJS近 30 天下载 2980

JavaScript 替换用于解析 API 蓝图文档格式的 Draver 库

中文使用文档
文档目录12 节
  1. 理由
  2. 特征
  3. 安装
  4. 使用量
  5. 节点.js
  6. 国 际
  7. 选项
  8. 运行测试
  9. 在 Docker 中运行
  10. 窗口中的嵌入容器
  11. 为什么API蓝图
  12. 贷项

@ funboxteam/ cracker (英语)

npm (scoped) Coverage Status

Crafter avatar

曲折 是一个 API 蓝图 以纯 JavaScript 编写的 parser . 它取代了Draver库,增加了一些方便的功能.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢

理由

起草器用C++来写出,所以代码相当复杂和模糊,同时包含了大量的bug和遗产. 很难理解其某些部分是如何运作的。 而如果bug修正受到维护者的欢迎,增加新的特性就可能成为障碍.

我们的公司有很小比例的C++项目,所以几乎没有一个开发者能够维护Draver.

这就是为什么我们决定 创建自己的JavaScript替换, 消除所有之前描述的限制, 易于维护,并使我们能够增加所有需要的特性.

特征

与 Draver 相比,这个库可以提供一些重要的功能:

  • 模块。现在可以将一个巨大的文件分割成若干部分,并互相注入APIB文件,这使得文档易于使用.
  • 资源原型 允许您在一个地方建立共同的响应,并通过文档重新使用.
  • 支助 查询字符串中的数组。 。 。 .
  • 基于 JSON Schema 类型在复杂类型的情况下,可以直接将其称为JSON Schema.
  • 字符串验证 属性来描述参数的预期长度和它们应该匹配的正则表达式.
  • 说明a 非 HTTP 交互 (作为WebSocket)通过Message部分.

有关图书馆工作安排的更多信息 文档 目录.

安装

全局安装 :

npm install -g @funboxteam/crafter

本地安装 :

npm install --save @funboxteam/crafter

使用量

节点.js

分析文件 :

const crafter = require('@funboxteam/crafter');

const apibFile = 'doc.apib';
const ast = (await crafter.parseFile(apibFile))[0].toRefract();

或提供包含APIB文档的字符串变量:

const crafter = require('@funboxteam/crafter');

const source = '# My API\n\n## List users [GET /users]\n\n+ Response 200';
const ast = (await crafter.parse(source))[0].toRefract();

国 际

分析一个名为 doc.apib 运行下一个命令 :

crafter [options] doc.apib

选项

  • -f, --format <format> ——设置解析结果的输出格式. 可用格式 : json, (中文(简体) ), yaml默认为 yaml。 。 。 .
  • -s, --sourcemap ——解析结果中导出源图.
  • -d, --debug ——启用调试模式,可禁用抓取一些例外.
  • -l, --langserver ——启用容忍模式,用于语言服务器.
  • -h, --help 产出使用信息.

运行测试

npm test

在 Docker 中运行

要将 @ funboxteam/ craver 作为 Docker 容器运行, 执行目录中的下一条命令并附带文档 :

docker run \
  --rm \
  -v $(pwd):/app \
  funbox/crafter -f json doc-file.apib

图像默认工作目录设定为 /app因此,更容易上载 输入主机目录 /app。那么像参数那样的文件名就可以了.

窗口中的嵌入容器

要运行 Windows 中的容器,请添加斜线(/) 之前 pwd。 。 。 . 命令会是这样的:

docker run \
  --rm \
  -v /$(pwd):/app/doc \
  funbox/crafter -f json doc/doc-file.apib

挂载目录可能为空 。 在这种情况下,请检查您的硬盘是否标记为共享 . 此设置可以在用于 Windows, 共享驱动器部分的 Docker 桌面的设置中找到. 如果磁盘没有共享,请标记为 shared,应用更改,并重新启动 Docker 桌面.

为什么API蓝图

我们广泛使用JSON API 在公司, 所以每天我们的开发者 面对的问题 描述和批准API文件, 跟踪变化,在伙伴之间分发文件等。 这就是为什么我们觉得非常需要 方便的工具 与文件有关的工作.

从历史上看,这场战斗是在 API 蓝图 财务报告和审定财务报表 斯瓦格语Name。 。 。 . 我们选择API蓝图有两个原因. 首先,使用API Blueprint描述的文献源代码对于人类来说更为可读. 第二,在进行研究时,Swagger缺乏几个重要特征,因为 One Of 支助.

贷项

这个项目的标志是很棒的 伊戈尔·加里巴尔迪。 。 。 .

Sponsored by FunBox

版本与发布记录

@funboxteam/crafter 共发布 10 个版本,首次发布于 2022/03/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
6.0.2latest2023/06/303 年前
6.0.12023/06/283 年前
6.0.02023/06/053 年前
5.0.12023/04/293 年前
5.0.02023/02/283 年前
4.1.22023/02/273 年前

关于 @funboxteam/crafter 的常见问题

@funboxteam/crafter 是什么?

JavaScript 替换用于解析 API 蓝图文档格式的 Draver 库

如何安装 @funboxteam/crafter?

在项目目录运行 npm install @funboxteam/crafter,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 crafter,可以用 npx crafter 直接运行。

@funboxteam/crafter 支持 TypeScript 吗?

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

@funboxteam/crafter 支持 ESM 还是 CommonJS?

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

@funboxteam/crafter 可以商用吗?

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

@funboxteam/crafter 的下载量有多少?

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

@funboxteam/crafter 还在维护吗?

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