适配器
适配器是负责处理 I/O 过程 以及外部集成。它们充当业务逻辑与数据库、API、文件系统或缓存存储等外部系统之间的桥梁。
目的
适配器将外部依赖的实现细节抽象掉,从而可以:
可互换性 - 轻松切换实现(例如,PostgreSQL → MongoDB)
可测试性 - 在测试中模拟外部依赖
隔离性 - 让业务逻辑独立于基础设施相关问题
位置
所有适配器组件必须放在 src/adapters 项目中的该目录下。
src/
└── adapters/
├── database/
├── storage/
├── cache/
└── external-api/共享接口
构建适配器时应考虑可互换性。请在 src/types.ts 中定义共享接口,以便多个适配器可以实现同一契约。
示例:存储接口
内存存储适配器
下面是一个简单的内存存储适配器实现,适合用于测试或开发。
目录结构
实现: component.ts
Redis 存储适配器
下面是一个可直接用于生产的 Redis 适配器,展示了生命周期管理。
实现: component.ts
错误处理: errors.ts
数据库适配器示例
下面是一个 PostgreSQL 数据库适配器示例。
生命周期方法
WKC 提供了会自动调用的特殊生命周期方法:
[Lifecycle.ComponentStarted]或[START_COMPONENT]- 在服务启动时调用[Lifecycle.ComponentStopped]或[STOP_COMPONENT]- 在服务关闭时调用
何时使用生命周期方法
当你的适配器需要以下操作时,请使用生命周期方法:
建立连接(数据库、缓存、消息队列)
初始化连接池或客户端
执行健康检查
在关闭时清理资源
优雅地关闭连接
最佳实践
1. 错误处理
始终处理连接错误并抛出有意义的自定义错误:
2. 配置
使用 config 组件来管理适配器设置:
3. 日志记录
记录重要操作以便调试和监控:
4. 类型安全
始终正确地为返回值添加类型:
5. 资源管理
始终在 stop 生命周期方法中清理资源:
测试适配器
请参阅 测试服务(WKC) 文档以获取有关测试适配器的详细指南。
快速示例
最后更新于