当爱站这类查询工具开始接受与以往不同的对象格式时,输入规范不能只改模板,而要同时改“校验层”和“交付层”。更稳妥的做法是:先判断变化属于兼容扩展还是替换性变更,再决定是保留旧格式的转换入口,还是强制统一到新格式。判断依据不是工具页面上的说明文字,而是你拿旧输入跑一次后,看它是被拒绝、被静默忽略,还是被当成另一种对象处理。
把格式变化分成两类,处理动作差别很大。
区分的证据来自一次小样本对照:同一批对象分别用旧写法和新写法提交,观察返回结果是否指向同一目标。如果旧写法返回空、报错或指向无关对象,就按替换性变更处理。注意,返回为空不一定证明旧格式已废弃,也可能是对象本身不存在、请求被限流或字段被截断,需要用已知有效的对象做对照才能排除。
不要依赖工具端容错。在提交之前加一层规范化,把输入整理成目标格式,再做一次可读性检查。
假设有 100 个对象,其中 30 个是旧写法。若按兼容扩展处理,这 30 个可以直接提交,只需为新写法补一条规则;若按替换性变更处理,这 30 个必须先改写,否则会混入失败队列。这个数字只用于说明两种路径的工作量差异,不代表任何实际统计。
一个实际动作是:先拿 5 个已知有效的对象做规范化前后对照。如果规范化后返回结果与预期一致,说明改写规则可用,可以扩大到全量;如果规范化后反而失败,说明目标形态定义错了,应先修规则再批量执行。
输入规范改了,交付给执行人员的内容也要同步改,否则下游仍按旧格式准备对象。
这一步的结果会直接影响下一步:如果交付说明里没有写清旧格式的去向,执行人员可能自行猜测并混用两种写法,导致失败原因难以归类。反之,说明清楚后,失败样本可以直接按格式问题或对象问题分流。
有三种情况不适合强行统一格式。
第一,旧格式仍被工具稳定识别,且改写会丢失必要信息,例如某些带参数的路径。此时保留旧格式,只对新对象使用新规范。
第二,对象来源分散在多个系统,各自输出格式不同。此时更适合在汇总环节做一次集中转换,而不是要求每个来源都改。
第三,格式变化只影响展示层,不影响实际查询目标。此时优先调整结果解读方式,而不是改输入。
遇到这些例外,判断标准仍然是同一批对象在两种写法下是否指向同一目标。指向一致,就不必强制改写;指向不一致,就必须改写或退回。
格式变化本身不是问题,问题在于校验层和交付层没有同步。把改动收敛成一条检查线:确认变化类型,定义目标形态,小样本对照,批量规范化,同步交付说明,记录例外。每一步都留下可回溯的记录,下一次格式再变时,只需要替换目标形态定义,而不必重写整套流程。具体工具对格式的支持范围会随时间调整,实际可用写法需要以你当前拿到的返回结果为准。