斯瓦格/ OpenAPI CPI
特征
- 验证 Swagger/ OpenAPI 文件中的 JSON 或 YAML 软件 格式
- 通过多文件 API 定义支持
$ref指针 - 将多个 Swagger/ OpenAPI 文件装入一个合并文件
相关项目
安装
使用 无数字 :
npm install -g @apidevtools/swagger-cli
使用量
swagger-cli <command> [options] <file>
Commands:
validate Validates an API definition in Swagger 2.0 or OpenAPI 3.0 format
bundle Bundles a multi-file API definition into a single file
Options:
-h, --help Show help for any command
-v, --version Output the CLI version number
-d, --debug [filter] Show debug output, optionally filtered (e.g. "*", "swagger:*", etc.)
验证 API
这个 swagger-cli validate 命令将对照 Swagger 2.0 计划 或者说 OpenAPI 3.0 司马该系统还针对 规格,它会捕捉一些没有被计划覆盖的东西,例如重复参数,无效的MIME类型等.
如果 API 无效, 命令会以非零代码退出 .
swagger-cli validate [options] <file>
Options:
--no-schema Do NOT validate against the Swagger/OpenAPI JSON schema
--no-spec Do NOT validate against the Swagger/OpenAPI specification
Git 预承诺钩
有一个有用的 Python 工具叫做 承诺前 用于执行一套广泛的承诺前检查。 这个 swagger-cli validate 命令可以通过将以下配置添加到 repos 现有条目 .pre-commit-config.yaml 文档.
- repo: https://github.com/APIDevTools/swagger-cli
rev: v2.2.1
hooks:
- id: swagger-validation
args: ["validate", "<path to root swagger>"]
其用意是指出指向多条指向斯瓦克定义的单根分叉. 上面的钩子将执行 swagger-cli validation 任何匹配模式的文件 .*swagger.*\.(json|yaml|yml) 已修改。 这种验证的任何失败都会妨碍git承诺的处理.
合并多个文件
Swagger 和 OpenAPI 的 specs 允许您将您的 API 定义分成多个文件 $ref 指针 以引用每个文件。 你可以用这个 swagger-cli bundle 命令将所有引用的文件合并为一个文件,这对分发或与其他工具的交互作用有用.
默认情况下 swagger-cli bundle 命令试图使输出文件大小尽可能小,只需嵌入每个引用文件 一次如果同一文件被多次引用,那么以后的任何引用都会被简单地修改以指向 单人 文件的内含副本。 如果您想要生成一个捆绑的文件, 不需要 任意 $ref 指针,然后添加 --dereference 选项。 这将导致一个更大的文件大小,因为多次引用同一个文件将导致该文件被嵌入多次.
如果你没有具体说明 --outfile 选项,然后将捆绑的 API 写入 stdout ,这意味着您可以向其他命令管道它.
这种方法默认的结果被写为JSON. 可用 YAML 更改为 YAML --type 选项,通过 yaml 数值.
swagger-cli bundle [options] <file>
Options:
-o, --outfile <file> The output file
-r, --dereference Fully dereference all $ref pointers
-f, --format <spaces> Formats the output using the given number of spaces
(the default is 2 spaces)
-t, --type <filetype> Defines the output file type. The valid values are: json, yaml
(the default is JSON)
-w, --wrap <column> Set the line length for YAML strings
(the default is no wrapping)
捐款
我欢迎任何贡献、增强和错误修正. 打开一个问题 关于 GitHub 和 提交拉动请求。 。 。 .
建筑物/试验
要在您的计算机上本地构建/测试项目:
-
克隆这个还原
git clone https://github.com/APIDevTools/swagger-cli.git -
安装依赖关系
npm install -
运行测试
npm test
许可证
Swagger CLI 是100%的自由和开放源代码, 在 麻省理工学院许可证随意使用.
这个软件包是 树件如果你把它用于生产,那么我们要求你 给世界买一棵树 感谢我们的工作。 将会为当地家庭创造就业机会.
谢谢
感谢这些优秀的公司对开源开发商的支持 QQ