SuperAPI AI 工具集

validate-openapi-spec

编程与开发

查看项目

更新于 10-19 05:32

技能介绍

用途

validate-openapi-spec 用于检查 OpenAPI 规范文件是否有效、是否存在错误。它通过 speakeasy lint 命令对规范进行校验,帮助用户在生成 SDK 之前发现并定位问题。

适用时机包括:

  • 在生成 SDK 之前检查规范是否有效
  • 识别阻塞 SDK 生成的错误
  • 用户提出“validate spec”“lint spec”“is my spec valid”等需求时

主要能力

该技能会输出三类结果:

  • 错误(Error):阻塞 SDK 生成的问题,必须修复。
  • 警告(Warning):可能引发问题的事项,建议修复。
  • 提示(Hint):最佳实践建议,可考虑修复。

常见校验问题及解决方向:

  • 缺少 operationId:添加 operationId,或使用 speakeasy suggest operation-ids
  • 无效的 $ref:修复引用路径
  • 缺少响应 schema:添加响应 schema 定义
  • 重复的 operationId:使 operation ID 唯一

使用方式

输入:OpenAPI 规范文件路径(必填,通过 -s 参数指定)。

命令:

speakeasy lint openapi --non-interactive -s <path-to-spec>

面向 AI 的输出优化:对于输出量较大的命令,可通过管道过滤以减少上下文,例如:

speakeasy lint openapi --non-interactive -s ./openapi.yaml 2>&1 | grep -E "(error|warning)"

适用场景

  • 在 SDK 生成前进行规范校验
  • 排查导致 SDK 生成失败的规范错误
  • 获取规范改进的最佳实践建议

限制与注意事项

  • 不要在不理解根因的情况下逐个修复错误。
  • 不要忽略警告,它们往往指示真实问题。
  • 如果规范由外部管理,不要在未询问的情况下修改源文件。

故障排查

  • “file not found”:规范路径无效,检查文件路径是否存在。
  • 大量重复错误:可能是共享 schema 问题,应修复根 schema,而非逐个引用。
  • “$ref not found”:引用损坏,检查引用路径是否与实际位置匹配。

相关技能

  • diagnose-generation-failure:当 lint 错误导致生成失败时使用
  • fix-validation-errors-with-overlays:在不修改源规范的情况下修复问题
  • get-ai-suggestions:获取 AI 驱动的改进建议