@ funboxteam/ cracker (英语)

曲折 是一个 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 支助.
贷项
这个项目的标志是很棒的 伊戈尔·加里巴尔迪。 。 。 .