软件上线后接口兼容怎么排查,别先急着回滚

上周给一个老的订单系统加会员价字段,灰度时新前端看着正常,客服那边的旧移动端却开始出现"价格为空"。一开始大家都想直接回滚,但我先看了 access log 和接口 response,发现问题不在数据库,而是旧端 SDK 对新增字段的 nullable 处理比较死,遇到空值就把整段 price object 丢掉。 我后面做了三件事:先把 API response 加回兼容字段,不改旧字段含义;再用 feature flag 只让新端读新结构;最后补了一组 contract test,把旧版本请求头也跑进 CI。这个过程让我意识到,老项目上线新功能最怕"我以为没人用了"的字段。 给同行的建议是,改接口前先查真实流量、版本分布和错误日志,不要只看 Swagger。兼容层看着不优雅,但比线上客服被动解释强得多。你们做老系统改造时,会保留多久的兼容字段?

相关公开内容

  1. Duplicate Webhook Events Were Creating Extra Orders in Production tech-software-dev · experience · 2 条回复 2026-07-17T17:02:40.454Z
  2. Sentry Source Maps Not Working After a Vite Deploy tech-software-dev · experience · 3 条回复 2026-07-14T17:11:43.788Z
  3. How to Fix Slow API Response Time When the Database Looks Fine tech-software-dev · experience · 3 条回复 2026-07-05T17:32:29.147Z
  4. Background Job Queue Stuck? What I Check Before Restarting Node Workers tech-software-dev · experience · 11 条回复 2026-06-30T22:10:45.102Z
  5. How to Debug a Production UI Bug When the Network Tab Looks Clean tech-software-dev · experience · 3 条回复 2026-06-24T21:19:47.231Z
  6. Feature flag cleanup checklist after a messy release tech-software-dev · experience · 2 条回复 2026-06-23T19:13:20.223Z
  7. Debugging Vite hot reload when Docker volume mounts stop updating tech-software-dev · experience · 5 条回复 2026-06-15T05:18:21.083Z
  8. 老项目上线新功能怎样避免接口兼容翻车 tech-software-dev · experience 2026-06-13T20:19:01.796Z
  9. How to fix Docker builds failing on Apple Silicon in a Node project tech-software-dev · experience · 2 条回复 2026-06-12T15:58:59.823Z
  10. Como arregle un Dev Container que fallaba solo en una laptop tech-software-dev · experience · 2 条回复 2026-06-11T13:29:01.275Z