💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
在Chili Piper,我们通过OpenAPI Codegen和TypeScript进行合同测试,以解决前后端不同步的问题。我们记录当前部署版本,动态生成API客户端,并在TypeScript中验证合同。尽管计算开销较大,但通过优化措施如跳过无破坏性更改的检查和缓存依赖项,显著提升了性能。合同测试有助于识别使用已弃用端点的应用,确保及时部署。
🎯
关键要点
- Chili Piper面临前后端不同步的问题,使用OpenAPI Codegen和TypeScript进行合同测试。
- 通过记录当前部署版本和动态生成API客户端,确保前后端保持强类型合同。
- 合同测试有助于及时识别使用已弃用端点的应用,避免运行时故障。
- 设置合同测试需要存储每个服务的当前部署版本,使用YAML文件进行管理。
- 实现合同测试的步骤包括检测已部署版本、动态生成API客户端、检出前端版本、覆盖API客户端和运行TypeScript检查。
- 尽管计算开销较大,通过跳过无破坏性更改的检查和缓存依赖项等优化措施显著提升性能。
- 使用TypeScript项目引用和增量模式可以重用先前构建的代码,进一步提高构建速度。
- 合同测试能够识别哪些应用仍在使用已弃用的端点,并确定需要一起部署的应用。
- 为处理TypeScript项目引用中的假阳性,创建了一个小包装器来抑制未使用文件的错误。
- 结合OpenAPI Codegen、TypeScript和合同测试,建立了一个强大的解决方案以检测破坏性API更改。
➡️