











在Backstage中,这些参数用于定义软件目录中各种实体(如组件、API、资源等)之间的关系。它们总是成对出现的,分别从关系两端的视角来描述同一种连接。
以下是这些参数的概念解释:
ownedBy:声明“谁拥有我”。例如,一个“微服务组件”在其YAML定义中通过 ownedBy: [team-a] 来声明它被“team-a”这个团队所拥有。ownerOf:声明“我拥有谁”。这是从所有者(如团队)的角度出发。例如,“team-a”这个Group实体会通过 ownerOf: [component:my-service] 来声明它拥有“my-service”这个组件。providesApis:声明“我提供哪些API”。用于定义组件(通常是后端服务)对外暴露的API接口。例如,component:order-service 在其定义中写明 providesApis: [order-api]。apiProvidedBy:声明“我由哪个组件提供”。这是从API实体的角度出发。例如,api:order-api 在其定义中会通过 apiProvidedBy: [component:order-service] 来指明它的提供者。consumesApis:声明“我消费/使用哪些API”。用于定义组件(如前端应用或另一个服务)所依赖的外部API。例如,component:web-frontend 写明 consumesApis: [order-api, user-api]。apiConsumedBy:声明“我被哪些组件消费/使用”。这是从API实体的角度反向描述。例如,api:order-api 可以通过 apiConsumedBy: [component:web-frontend, component:mobile-app] 来查看其所有消费者。dependsOn:声明“我依赖于谁”。用于定义组件运行时对另一个组件、API或资源的硬性依赖。例如,component:payment-service 可能依赖于一个数据库资源:dependsOn: [resource:payment-db]。这有助于进行影响分析和故障排查。dependencyOf:声明“谁依赖于我”。这是从被依赖方的角度描述。例如,resource:payment-db 会通过 dependencyOf: [component:payment-service] 来了解哪些组件依赖自己。parentOf:声明“谁是我的子级/下级”。通常用于Group(组/团队)或System(系统)实体。例如,一个名为infrastructure的父组可以声明 parentOf: [group:network-team, group:storage-team]。childOf:声明“谁是我的父级/上级”。这是从子实体的角度描述。例如,group:network-team 会声明 childOf: [group:infrastructure]。memberOf:声明“我属于哪个集合/组”。通常用于User(用户)实体。例如,用户Alice的定义中会写明 memberOf: [group:frontend-developers]。hasMember:声明“哪些成员属于我”。这是从Group(组)实体的角度描述。例如,group:frontend-developers 会声明 hasMember: [user:alice, user:bob]。partOf:声明“我是哪个更大整体的一部分”。用于描述一个组件属于某个更大的系统或领域。例如,component:checkout-service 可以声明 partOf: [system:e-commerce-platform]。这有助于构建系统视图。hasPart:声明“我包含哪些部分”。这是从整体(如System)的角度描述。例如,system:e-commerce-platform 会声明 hasPart: [component:checkout-service, component:product-catalog]。核心总结:
ownedBy / ownerOf)描述的都是同一种关系,只是视角不同。ownedBy, partOf),Backstage 的后台处理器会自动在另一端(如团队、系统)填充对应的反向关系(如 ownerOf, hasPart),从而确保目录中关系图谱的双向一致性和可导航性。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。