SuperAPI AI 工具集

umbraco-repository-pattern

通用与其它

查看项目

更新于 10-15 21:33

技能介绍

用途:该技能介绍 Umbraco 后台(Backoffice)中存储库(Repository)模式这一基础概念,帮助开发者在扩展中规范地发起数据请求与接收更新通知,将数据访问从服务器、离线数据库、Store、Signal-R 等不同来源中抽象出来,把业务逻辑与直接数据访问分离,便于维护与扩展。

主要能力:Repository 作为数据操作入口,对外暴露可用操作;数据源(Data Source)负责真正获取与存储数据;Store 为可选层,借助 State 对象在整个会话中缓存数据;Context 负责协调状态与存储库,UI 通过 Context 观察状态变化。文档给出的分离原则为:Repository 决定有哪些操作,Data Source 决定如何取存,Store 决定缓存位置,Context 负责统筹。

使用方式:先获取最新文档(主文档及 Working with Data、Store、Foundation 页面),再明确要管理的数据、所需 CRUD 操作与数据源类型,然后生成 Repository 与 Data Source 代码。注册时通过 umbExtensionsRegistry.register 提交 type 为 repository 的清单(含 alias、name、api)。实现时继承 UmbControllerBase,在构造函数中传入 host(UmbControllerHost),并定义 getAll、getById、create、update、delete 等方法;也可在 Repository 下再封装 Data Source,或实现 Tree Repository 的 getRootItems、getChildrenOf、getAncestorsOf 等。在 Context 中实例化 Repository,用 UmbArrayState 保存列表并通过 asObservable 暴露,供 UI 观察。

重要限制与安全要求:绝不要用原始 fetch() 进行自定义 API 调用,否则会返回 401 Unauthorized;必须使用按 Umbraco 认证上下文配置的生成式 OpenAPI 客户端,具体设置参见 umbraco-openapi-client 技能。实现前应始终抓取最新文档,保持示例最小化。

适用场景:为 Umbraco 后台扩展构建数据访问层、需要可替换数据源、希望降低 UI 与数据层耦合、便于测试与维护的场景。

暂未提供:具体版本要求、依赖安装命令、收费与授权信息、性能数据等未在资料中说明。