@azure/avocado

中文文档
0.12.1发布于 2026/09/03MITTypeScriptES Module近 30 天下载 4.7万

OpenAPI 配置验证器

中文使用文档
文档目录20 节
  1. 概览
  2. 如何使用
  3. 安装
  4. 使用量
  5. 示例
  6. 如何解决错误
  7. JSON 平面
  8. 否 JSON FILE FOUND
  9. (原始内容存档于2017-10-21) (英语). UNREFERENCE JSON FILE
  10. 失忆了
  11. 不为人知
  12. 密码:
  13. 中心-资源
  14. 模拟 API VERSION
  15. 评分( F)
  16. 错过 APIS IN DEFAULT TAG
  17. (简体中文)
  18. (原始内容存档于2013-10-12). MULTIPLE DEFAULT TAGS
  19. 评分( T)
  20. 捐款

阿沃卡多语Name

OpenAPI spec寄存器配置和目录的又一验证器.

Build Status

国家预防机制:https://www.npmjs.com/package/@azure/vocado

概览

Avocado验证文件夹结构和配置.

Avocado可以被集成到Azure管道来验证OpenAPI spec寄存器. 例如,Avocado被使用为 Azure/azure-rest-api-specs 当新的拉动请求被创建时, 它会自动被 Azure DevOps 管道触发 .

阿沃卡多主要功能如下:

  • 对于给定的目录验证是否存在 specification 过滤器 readme.md 下划线 specification 文件夹.
  • 验证是否 readme.md 是自定义的特定文件,必须包含 see https://aka.ms/autorest
  • 验证是否 swagger file 是有效的json文件,并检查所有引用 json 文件( 编号referenced json 以 json 对象标记的文件有密钥名称 "$ref") (中文(简体) ).
  • 校验文件夹是否有未引用的文件 . swagger file 必须引用 readme.md 或其他类型 swagger file。 。 。 .
  • 验证是否 swagger file 有个通知和警告 详见: 民事裁判所
  • 验证每个 RP 文件夹是否包含 SDK 生成的 readme 文件 .

如何使用

安装

npm install -g @azure/avocado

使用量

  • avocado -h 显示帮助消息
  • avocado 验证当前目录
  • avocado -d <my-folder-path> 验证 <my-folder-path> 目录
  • avocado -d <my-folder-path> --excludePaths 'common-types' 校验文件夹并排除“ 常见类型” 的错误

示例

  • 运行全部规格 : 清除还原 azure/azure-rest-api-specs 在文件夹中运行“ vocado ” azure/azure-rest-api-specs。 。 。 .
  • 运行单个服务规格: 创建文件夹 specification并移动您的服务规格文件夹 specification运行"vocado"

如何解决错误

JSON 平面

级别: 错误

要解决 json 解析错误, 您需要确保 json 格式是有效的 .

否 JSON FILE FOUND

级别: 错误

Readme 文件引用了一个不存在的json文件. 要解决错误, 您需要检查 json 文件是否存在 .

(原始内容存档于2017-10-21) (英语). UNREFERENCE JSON FILE

级别: 错误

Json文件必须被readme输入文件部分或其他json文件所引用. Eg,实例 swagger 文件应该被主 swagger json 引用,对于 SDK 生成主 swagger ,应该被 readme 输入文件部分引用. 要解决错误, 您需要将非引用文件放置到合适的位置 .

失忆了

级别: 错误

每个资源提供者文件夹必须有一个下游SDK生成所需的readme文件. 要解决错误,需要创建包含SDK生成配置的readme文件.

不为人知

级别: 错误

资源提供者文件夹中的每个读取器都应遵循自动降标格式。 要解决错误, 请检查 readme 块引用是否包含 see https://aka.ms/autorest 从字面上说.

密码:

级别: 错误

Swagger json 文件 api 版本必须与其文件路径一致 。 斯瓦格可以定义 swagger 2.0 基本结构 包含 api 版本。 要解决错误, 您需要修改您的 swagger 文件位置或 swagger 文件 api 版本, 以使两者一致 .

中心-资源

级别: 警告

要解决循环参考问题,应当打破循环链.

示例 a.json - > (中文) b.json- > (中文)c.json

// a.json
{ "$ref": "b.json" }
// b.json
{ "$ref": "c.json" }
// c.json
{ "$ref": "a.json" }
graph TD

A((a.json))-->B((b.json))
B-->C((c.json))
C-->A

模拟 API VERSION

级别: 错误

默认标记只应包含一个API版本.

要解决这个错误, 您应该为您服务中的所有资源类型添加一个新的一致的版本, 并将字段复制到当前版本文件夹中 .

评分( F)

级别: 警告

管理平面 swagger JSON 文件与其文件夹路径不符 。 确保位于资源管理文件夹中的管理平面 swagger

要解决此警告, 您应该确保位于资源管理文件夹中的管理器平面 swagger .

错过 APIS IN DEFAULT TAG

级别: 错误

这个 默认 API 版本标签( 可见于 Basic information 节次 自动Rest 配置文件 (README文件)应当包含所有API路径. API 路径 : ${0} 在任何 OpenAPI 中都没有 .json 包含在默认标签中的路径列表中列出的文件,如 相关 Tag: 节 在自动恢复配置文件(README文件)中.

修复此错误包括 OpenAPI .json 默认 API 版本标签路径列表中的文件路径( 在 相关 Tag: 节包括缺失的 API 路径.

重要性:错误可能指向之前的API版本. 这并不意味着这是假阳性来啊! 这意味着之前的API版本有一个API路径在默认API版本中缺失.

Avocado 正常公关失败的常见情况数字 :

  • 由于外壳不匹配, API 路径往往从默认 API 版本中缺失; 例如, 新 API 版本中的路径 resourceGroups 在其中,而前一个有 resourcegroups. 见下文实例.
  • 如果阿沃卡多报告你错过了一条路 故意贬值 或者说 故意删除 但API版本是公开发布的(GA,通用可用,不预览中),您需要先获得 突破变更委员会审批. 跟踪步骤1的突破性改变过程 此图如果您在先前的公关中已经获得这种批准,请遵循 压制指南提到你确定的情况.

已知的阿沃卡多报告虚假阳性的情况: Avocado可能错误地报告以下两种情景中的失败:

如果你正在处理其中一种情况 压制指南提到你确定的情况.

当此错误可以被压制时: 如果缺失的 API 路径被贬值, 您可以压制这个错误 。 循此[先入后入导].

例如,详细分析这类错误的发生,见这些GitHub评论:

(简体中文)

级别: 错误

这个 默认 API 版本标签( 可见于 Basic information 节次 自动Rest 配置文件 (README文件)不包含给定的OpenAPI的最新API版本 .json 文档.

要纠正这个错误,请确保 .json 最晚API版本路径的文件包含在默认标签路径列表中,在 相关 Tag: 节 在自动恢复配置文件(README文件)中. 或者,通过编辑 API 版本标签,将默认的 API 版本标签改为有效的标签 Basic information 节.

例如,详细分析这种错误的发生,见 此 GitHub 注释。 。 。 .

(原始内容存档于2013-10-12). MULTIPLE DEFAULT TAGS

级别: 错误

Readme 文件有多个默认标签.

期望是只有一个默认标记,这会导致一个SDK包. 在同一RP的不同服务资源上发布单独的SDK软件包,不妨考虑采用 服务组的文件夹结构,它支持每个子文件夹下的 readme 配置文件.

评分( T)

级别: 错误

Typec 文件在资源管理或数据平面文件夹中不允许使用.

以修此错. 您应该将 TypeSpec 文件移动到 TypeSpec 文件夹 .

捐款

该项目欢迎各方的贡献和建议。 大多数捐款要求您同意 撰稿人许可协议(CLA)宣布,你有权并且实际上确实给了我们 有权使用您的贡献。 详情请访问 https://cla.microsoft.com (中文(简体) )。 。 。 .

当您提交拉动请求时, CLA 机器人会自动确定您是否需要提供 a CLA并适当装饰公关(例如标签、评论)。 只要听从指示 由机器人提供。 你只需要用我们的CLA 一次就能完成.

该项目通过了 Microsoft 开源行为守则。 。 。 . 更多信息见 《行为守则》 或者说 联系人 打开码@ microsoft.com 并附上任何其他问题或评论.

版本与发布记录

@azure/avocado 共发布 59 个版本,首次发布于 2019/03/06;过去 12 个月发布了 5 个版本。

版本发布日期距今
0.12.1latest2026/09/032 个月前
0.12.02026/08/202 个月前
0.11.02026/03/257 个月前
0.10.52025/11/2011 个月前
0.10.42025/11/2011 个月前
0.10.32025/10/081.1 年前

关于 @azure/avocado 的常见问题

@azure/avocado 是什么?

OpenAPI 配置验证器

如何安装 @azure/avocado?

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

@azure/avocado 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@azure/avocado 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@azure/avocado 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@azure/avocado 可以商用吗?

@azure/avocado 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@azure/avocado 的下载量有多少?

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

@azure/avocado 还在维护吗?

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