For the complete documentation index, see llms.txt. This page is also available as Markdown.

适配器

适配器是负责处理 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) 文档以获取有关测试适配器的详细指南。

快速示例

最后更新于