Skip to content

集成决策

选择符合现有服务的最简单一层。当更高一层能消除已经存在的重复工作时再采用,并将配置成本和后端契约纳入决策。

直接、声明式还是生成式客户端

选择适用情况你负责什么不适用情况
直接 Fetcher少量调用或端点特有行为路径、请求选项、结果选择、边界验证大量重复端点声明容易各自漂移
装饰器服务稳定方法适合集中声明服务metadata/编译器配置、参数注解、端点准确性不希望引入装饰器配置,或 API 主要是临时调用
生成式服务实际维护的契约是 OpenAPI 文档生成命令/配置、审查和编译产物、规范变化后重新生成规范缺失或不准确;文档没有表达服务语义

它们共享运行请求边界:核心实现请求/提取(packages/fetcher/src/fetcher.ts:230),装饰器有 metadata 运行依赖(packages/decorator/package.json:56),生成器是 CLI(packages/generator/src/cli.ts:8)。OpenAPI 导出类型定义(packages/openapi/src/index.ts:21)。注解和生成类型都不会在运行时验证响应,也不会补全缺失的服务端语义。

HTTP 请求开始,再使用声明式客户端生成式客户端中的已验证工作流。配置细节见装饰器参考生成器参考peer 图应与预期执行代码分别检查。

View、Viewer 还是 FetcherViewer

维护期(已弃用)

@ahoo-wang/fetcher-viewer 已进入维护期(弃用),仅维护现有功能,不再新增功能。数据视图能力的后续演进由 @ahoo-wang/fetcher-view-engine 承担,新项目请使用 View Engine。本页保留供存量项目维护参考;两者模型与 API 不同,迁移需要适配。

选择数据与状态契约适用情况代价或不匹配点
View接收 PagedList,发出交互变更,可采用受控状态单个表格/视图,数据归应用所有应用必须实现筛选、排序和分页
Viewer增加保存视图集合和选择,加载/保存回调交给应用用户在现有数据服务上切换/保存视图应用实现持久化、错误处理和成功回调时机
FetcherViewer加载定义/视图和行数据,通过约定后端协议发送 Wow 视图命令服务实现该协议和身份模型需要兼容端点和投影行为;不是通用 REST 配置组件

前两者责任见 packages/viewer/src/view/View.tsx:417packages/viewer/src/viewer/Viewer.tsx:140;远端行加载见 packages/viewer/src/fetcherviewer/hooks/useFetchData.ts:53。FetcherViewer 创建/更新确认与删除的范围不同,向用户承诺保存结果前应阅读状态与资源

本地表格使用本地数据,在应用内实现分页排序。需要持久化时增加保存视图。具备后端契约时再采用远端数据。属性见 View/Viewer 参考FetcherViewer 参考

服务专用集成

集成所需契约服务/应用保留的责任
Wow命令结果/阶段及支持的查询 DSL授权、租户隔离、幂等、投影新鲜度
CoSectoken 存储、归属头、刷新端点/会话规则身份生命周期、重放安全、服务端授权
SSE / OpenAI 流兼容事件流和载荷格式部分结果 UX、取消及必要时的重连策略

客户端条件描述发送的查询,不是访问控制。命令阶段描述协议进度,不是通用一致性保证。CoSec 带保护的刷新实现专用于其认证 exchange(packages/cosec/src/authorizationResponseInterceptor.ts:80),SSE 提取则要求可读响应体(packages/eventstream/src/eventStreamResultExtractor.ts:38)。

继续阅读 WowCoSec流处理。跨身份共享这些集成前阅读运行环境;增加重试前阅读失败模型

基于 Apache License 2.0 发布。