企业站做到一定阶段,总会被要求"和内部系统打通":产品库存实时显示、客户询盘自动进 CRM、订单状态可查询。这些需求听起来简单,实际是项目里最容易出问题的部分。
对接前先把边界划清楚
开工前必须确认这几件事,缺一项都可能返工:
- 谁提供接口:现有系统有没有开放接口,没有的话要另行开发,成本和时间都要算进去
- 数据谁说了算:产品信息以 ERP 为准还是以后台为准,双向同步是最麻烦的方案,能避免就避免
- 同步频率:实时、每小时、还是每天一次,决定了技术方案的复杂度
- 字段对应关系:两边的字段名和格式往往不一样,要做一份对照表
其中"数据谁说了算"最关键。定不清楚,两边互相覆盖,最后谁的数据都不准。
接口设计的几条规矩
无论哪一方开发接口,按这套约定走能少很多沟通成本:
- 用 REST 风格,路径带版本:
/api/v1/products,以后升级不影响旧调用方 - 返回结构统一:状态码、消息、数据三段式,前端好处理
- 分页参数标准化:
page和pageSize,别各写各的 - 字段命名一致:全用小驼峰或全用下划线,别混着来
- 文档自动生成:手写文档一定会过期,用工具从代码里生成
异常比正常情况更值得设计
接口正常的时候大家都开心,出问题的时候才见功夫。必须提前想好:
- 对方系统宕机:网站不能跟着打不开,要有降级方案,显示缓存数据或提示稍后再试
- 响应超时:设置合理超时时间并重试,重试要有次数上限和间隔
- 数据缺失:某个产品查不到,是跳过还是显示占位,规则要明确
- 重复提交:网络抖动会产生重复数据,用唯一请求编号去重
安全不能省
接口一旦暴露在公网,就要按公网的标准来防护:
- 必须有身份校验:用令牌机制,令牌要有过期时间
- 按最小权限授权:只读接口就别给写权限
- 限制访问频率:防止被刷,也防止异常循环拖垮系统
- 敏感数据脱敏:客户手机号、价格体系,按需返回
- 全链路走 HTTPS,内网调用也不例外
上线后要能看见
对接类功能最怕"悄悄坏了"。建议做三件事:
- 记录每次调用日志:请求、响应、耗时、成功与否都记下来
- 失败告警:连续失败或者失败率超阈值,发通知到负责人
- 留一个手动同步入口:数据对不上的时候,能一键重新拉取
一个提醒
对接需求能简就简。很多企业一上来想做"全量实时双向同步",做到最后既贵又不稳定。先从单向、定时、关键字段开始,跑通了再逐步扩展,这是更稳妥的路径。
系统对接的价值不在技术多先进,而在于数据终于不用人肉搬了。
—— 一位做过多次 ERP 集成的实施顾问