各位平台工程师们,大家好!在定制 Backstage 或创建新的后端插件时,有一个库是您一定会遇到的,那就是 @backstage/backend-common。了解这个库提供的强大工具,可以将您的开发时间缩短一半。⏱️

1. @backstage/backend-common 是什么? 🔍
这个包在 Backstage 后端生态系统中,就像一个“通用工具的宝库”。它以标准化的方式提供构建后端服务时反复需要的功能,帮助开发者专注于业务逻辑。
2. 主要提供功能 (核心实用工具) 🛠️
该库提供的主要实用工具如下:
- 数据库连接 (Database Helpers): 基于 Knex.js 提供工具,轻松管理数据库配置并执行迁移。🗄️
- 日志记录 (Logging): 提供基于 Winston 库的标准化日志接口,使所有插件都能以相同的格式记录日志。📝
- 错误处理 (Error Handling): 提供 NotFoundError、ConflictError 等标准 HTTP 错误类,确保一致的 API 响应。⚠️
- 令牌和认证 (Token Management): 包含服务间通信所需的令牌生成和验证辅助工具。🔑
3. 集成辅助工具 (Integration Helpers) 🤝
Backstage 最大的优势是可扩展性。这个库包含了与外部系统集成所需的强大功能。
- UrlReader: 提供统一接口,可以从 GitHub、GitLab、Bitbucket 等各种源代码托管服务读取文件。🌐
- Config Loading: 负责安全地读取和验证 app-config.yaml 文件中的配置。
- Discovery: 支持动态查找其他后端服务位置(URL)的发现机制。
4. 为什么要使用这个库? 💡
这不仅仅是为了方便。使用 @backstage/backend-common 的原因是一致性 (Consistency)。
- 遵循标准: 您可以遵循 Backstage 核心团队定义的最佳实践。
- 易于维护: 如果所有插件都使用相同的通用工具,系统更新或重构将变得更加顺畅。
- 经过验证的稳定性: 您可以直接使用已被众多企业使用的稳定代码。✅
5. 最新趋势: New Backend System 🆕
最近,Backstage 正在演变为“New Backend System”。因此,@backstage/backend-common 中的功能正趋向于迁移到更细分的包(例如:@backstage/backend-plugin-api, @backstage/backend-defaults)。然而,在现有插件或遗留代码中,这个库仍然扮演着核心角色。
6. 总结 🏁
毫不夸张地说,Backstage 后端开发在很大程度上取决于您如何有效地利用这个通用库。如果您计划创建一个新插件,请首先检查这个包中是否已经实现了您需要的功能!
发表回复