如何通过API删除Backstage Catalog中的实体?
移除Backstage Catalog自带预填充实体的解决方法
方法一:修改预填充配置文件(最推荐)
Backstage默认预填充实体是通过配置文件加载的,直接修改配置比调用API更可靠:
- 找到项目根目录下的
app-config.yaml或app-config.local.yaml - 定位到
catalog.locations配置段,删除自带的预填充数据源,比如默认的示例配置:- type: url target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-components.yaml - 保存配置后重启Backstage服务,自带实体就不会再加载
方法二:正确调用Catalog删除API
如果一定要用API删除,需注意以下关键点:
- 携带正确的身份认证头:Backstage默认启用认证,复制cURL时要确保包含
Authorization头(通常是Bearer token),可从网页开发者工具的请求头中获取 - 确认UID准确性:实体UID可通过
GET /api/catalog/entities接口获取,或在Catalog实体详情页的URL路径中找到 - 直接发送DELETE请求即可(浏览器的OPTIONS是自动预检请求,手动调用无需单独发送),示例cURL(替换
<uid>和<your-token>):curl -X DELETE http://localhost:7007/api/catalog/entities/by-uid/<uid> \ -H "Authorization: Bearer <your-token>" \ -H "Content-Type: application/json"
方法三:清理本地数据库(仅本地开发场景)
如果使用默认SQLite数据库,可直接清空数据:
- 找到项目
backend/.backstage目录 - 删除其中的
sqlite.db文件 - 重启服务后,Catalog会重新加载你配置的实体,自带预填充数据将被清除
内容的提问来源于stack exchange,提问作者scubbo
相关产品推荐
相关产品推荐

