接口字段契约检查

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

比对前端样例与后端接口定义,找出字段名、类型、必填与空值口径差异,并标注 Long 精度、日期格式等高风险项。当用户说「接口字段对不上」「联调报错」「对比接口定义」时使用。 也适用于「接口定义对比」「字段不一致」「api contract」这类说法。

一句话选型结论

按资料字段整理

接口字段契约检查是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_01de61f3/ym-api-contract-diff
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_01de61f3仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791621723
正文体量7.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
接口字段契约检查当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

7.9 KB
模型实际读到的说明书原文,来自技能仓库

接口字段契约检查 (ym-api-contract-diff)

把前后端接口约定一次性比对清楚:缺字段、多字段、类型不一致、必填与空值口径不同,并单独标出 Long 精度、日期格式这类一上线就埋雷的高风险项。核心价值是「不靠人肉一行行对字段」,也不给出「两边都差不多」的含糊结论。

何时使用

  • 用户说「接口字段对不上」「前端说字段没有」「联调报错」「对比一下接口定义」「字段不一致」「api contract」时
  • 用户贴出前端请求/响应 JSON 样例、后端 DTO/实体定义、或 OpenAPI/Swagger 片段,问「两边是不是一致」时
  • 联调阶段前后端互相甩锅「是你没传 / 是你字段名错了」时

运行前提

  • 脚本 scripts/diff_fields.py 仅依赖 Python 标准库 json,无需安装任何第三方包
  • 适合直接喂 JSON 样例的两两比对;后端 Java DTO 文本、OpenAPI YAML 这类非 JSON 文本,由本技能在对话中按规则解析,不强制走脚本
  • 不读取本地文件,除非用户明确给出路径;不联网、不通电请求真实接口

输入契约

项 必需 说明
接口描述(两侧) 至少 1 份 前端 JSON 样例 / 后端 DTO 定义 / OpenAPI 片段,可组合提供
字段名映射规则 可选 如驼峰 ↔ 下划线;不提供则自动归一化
忽略字段列表 可选 明确不比对的字段(如分页包装 pageNo、traceId)

缺失处理:

  • 只有 1 份 → 只做「单份规范检查」(命名一致性、类型标注、必填说明),并在开头明确声明「仅 1 份,未做差异比对」
  • 字段名风格不同(一侧驼峰、一侧下划线)→ 先做归一化,在报告里列出「归一化对照表」,不隐式改写原字段名
  • 输入是图片/截图 → 说明暂不支持,请用户粘贴文本或复制字段清单
  • 用户给的是 DTO 代码而非 JSON → 在对话里按 类型 字段名 提取字段清单,再比对,不强行跑脚本

执行步骤

  1. 归拢两侧字段清单 — 每侧产出:字段路径、类型、是否必填、是否可为空、示例值。JSON 可直接用 scripts/diff_fields.py 自动扁平化;DTO/OpenAPI 由本技能人工解析后填进字段表。

  2. 归一化 — 字段名按驼峰↔下划线归一到统一形式;类型按「类型族」归一(int/Integer/number → 数值族,String/string → 字符串族,详见 references/type-family-rules.md)。这一步必须先做,否则同名不同写法会被误判为两个字段。

  3. 差异分类 — 输出四类差异:
    - 仅一侧有(漏字段 / 废弃字段)
    - 两侧都有但类型族不一致(尤其 Long 精度、日期格式、枚举取值)
    - 必填口径不一致(一侧必填、一侧可选)
    - 空值口径不一致(一侧返回 null、一侧直接不返回该字段)

  4. 逐条给影响与建议 — 每条差异必须写:字段名 / 两侧取值 / 影响(会不会报错、会不会静默丢数据)/ 建议谁改(前端 or 后端)。不许只列差异不给结论。

  5. 单独标注高风险项 — Long 超出 JS 安全整数(2^53)、日期格式不明确、枚举值未对齐、金额用浮点,这些列进独立章节并标红,判定细则见 references/type-family-rules.md。

  6. 硬性约束 — 不修改任何源文件;不通电请求真实接口;不生成「两边都对」的含糊结论;差异条数必须与字段条数对账,不能漏比。

输出格式

Markdown,套用 templates/diff-report-template.md:

## 字段清单(归一化后)
| 字段(归一名) | 前端类型 | 后端类型 | 前端必填 | 后端必填 |

## 归一化对照表
| 原字段名(前端) | 原字段名(后端) | 归一名 |

## 差异表
| 字段 | 差异类型 | 两侧取值 | 影响 | 建议修改方 |

## 高风险项
| 字段 | 风险 | 影响 | 建议 |

## 建议修改方与改法
- 后端:...
- 前端:...

能力边界

  • 不发起真实 HTTP 请求,不连数据库
  • 不自动改代码或改接口定义文件
  • 不声称覆盖所有语言的类型系统;首版限定 JSON / OpenAPI / 常见 Java DTO 写法
  • 类型族归一只是「便于比对」的宽松归类,不能替代精确类型定义;精确类型(如 decimal(10,2))以高风险项形式单列

常见坑

  1. 驼峰下划线当成不同字段 — 现象:报告里 userId 和 user_id 都被列为「仅一侧有」。原因:没做字段名归一化。规避:先跑第 2 步归一化并在对照表展示,确认是同一个字段再比对。

  2. Long 当 number 放过 — 现象:类型为 Long 的 ID 字段被判为「一致」,上线后前端拿到精度丢失的大整数。原因:只比类型族,没看具体类型。规避:凡出现 long/Long/bigint 一律进高风险项,提醒 JS 安全整数上限 2^53。

  3. 空值与缺失字段混为一谈 — 现象:后端返回 null 前端按「字段不存在」处理,被漏判。原因:把「值为 null」和「字段不出现」当成一回事。规避:在字段清单里分别记录「可空」与「是否可能出现缺失」,第 3 步空值口径单独成类。

  4. 枚举只比对类型 — 现象:status 两侧都标 String 被判一致,实际前端枚举是 0/1/2 后端是 ENABLED/DISABLED。原因:类型族归一掩盖了取值不一致。规避:枚举字段强制看取值集合,列入「枚举未对齐」高风险项。

  5. 日期格式不明 — 现象:createTime 前端期望 yyyy-MM-dd HH:mm:ss,后端返回时间戳或 RFC3339,解析失败被漏判。原因:日期在类型族里常归为字符串被放过。规避:所有疑似日期字段进高风险项,要求明确格式与时区。

  6. 金额用浮点 — 现象:amount 标 double/float 被判一致,做加减后出现精度误差。原因:数值族归一把 double 和 decimal 都归为数值。规避:凡金额/价格字段出现浮点类型,进高风险项要求改用整数分或 decimal。

验收用例

  • 正常:前端 JSON 样例 + 后端 DTO → 差异表齐全,含类型与必填差异,高风险项非空
  • 边界 1:字段名一侧驼峰一侧下划线 → 归一化后比对,并列出对照表
  • 边界 2:只有 OpenAPI 一份 → 只做规范检查,开头声明未做差异比对
  • 失败:输入是截图 → 说明不支持,请用户提供文本

目录说明

  • scripts/diff_fields.py — 纯标准库脚本,输入两份 JSON(文件或内联)做字段名归一化与差异比对,输出 Markdown;scripts/setup.py 当前无第三方依赖
  • references/ — 类型族归一化对照表与高风险项判定细则
  • templates/ — 差异报告输出模板

常见问题

5 问
答案由本站依据条目字段整理
接口字段契约检查怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_01de61f3/ym-api-contract-diff。安装方式为未标注。装完刷新技能列表或重开客户端。

接口字段契约检查支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

接口字段契约检查权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

接口字段契约检查收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

接口字段契约检查用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。