字段命名转换
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/wp20266381。
技能介绍
它解决什么问题
当你把前端代码和后端接口对接时,最常碰到的摩擦是字段命名风格不一致。前端开发者习惯写 customerName,后端接口返回 customer_name,配置文件里又可能是 customer-name。这种差异本身不难转换,但散落在每个请求、每个响应、每个配置项里时,手动转换就成了重复劳动,而且容易出错——一个漏掉的键名会导致静默的数据丢失。
这个技能的目标是把这件事变成一条简单的规则:让 Agent 在请求发出前和响应返回后,自动把 DTO 的键名映射到目标风格,而不是让你手写正则或维护一份字段映射表。
它如何工作
核心能力是基于 change-case 库做键名转换,支持三种常见风格之间的互转:
camelCase:JavaScript/TypeScript 代码中的默认风格snake_case:多数后端 API 和数据库字段的风格kebab-case:配置文件和 CLI 参数的常见风格
关键步骤分三步:
- 安装依赖:
npm i change-case。注意该库的大版本导出名是函数式 API,调用方式与旧版本不同。 - 在请求前或响应后,对 DTO 对象的键执行
mapKeys转换,把源风格映射到目标风格。 - 自测验证:确认
user_name能正确转成userName,并且往返转换后结果可辨——即camelCase → snake_case → camelCase不会丢失信息。
边界情况的处理规则是:空字符串原样返回,不做转换;非字符串输入先经过 String() 转换再处理;转换对象键时不得修改原型链上的键,只处理对象自身的可枚举键。
适用边界与注意点
这个技能有明确的适用范围,超出范围的使用场景需要额外处理:
- 不做 AST 级重命名。它只处理运行时的数据对象,不会去分析源码、重命名变量或重构整个项目。如果你需要全项目级别的命名统一,这是代码搜索和替换工具的事,不是这个技能的职责。
- 深度嵌套对象需要自行递归。当前的转换策略只处理一层键名映射。如果对象嵌套了多层,且每层的键名风格都不同,需要你提供递归策略,否则深层字段会被静默漏转——这是最容易踩的坑。
- 不要假装用了 change-case。手写正则拆词来模拟 camelCase/snake_case 转换是常见的偷懒做法,但正则无法正确处理已经存在的驼峰命名、数字边界、Unicode 字符等边界情况,最终会得到不一致的结果。
简而言之,这个技能适合请求/响应边界上的字段风格对齐,不适合深度嵌套的复杂数据结构,也不适合源码级的全局重命名。
使用场景
- 前后端联调时,前端写 camelCase 请求参数,后端接口要求 snake_case,需要在请求前对 DTO 键名做批量转换
- 后端返回 snake_case 格式的 JSON 响应,前端需要转成 camelCase 再渲染到页面或存入状态管理
- 配置文件使用 kebab-case 键名,写入代码时需要转换成 camelCase 风格才能正常引用
- 在写 Demo 或技术验证时,需要快速预览同一字段在 camel/snake/kebab 三种风格下的映射效果
适合人员
- 正在做前后端联调的前端工程师,需要在请求和响应边界上统一字段命名风格
- 对接第三方 API 的后端开发者,需要处理对方 snake_case 和自己 camelCase 之间的数据转换
- 编写配置解析工具或 CLI 的全栈开发者,需要实现 kebab-case 与 camelCase 的键名互转
- 维护多个微服务数据契约的技术负责人,需要在网关或 DTO 层做字段风格统一