跳到主要内容
知识地图如何从一个只读 provider 开始?ArcBlock 体系

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← AFS

一个问题

如何从一个只读 provider 开始?

先实现一个明确资源及其路径契约,再扩展操作。

先写下读者能观察到的行为

我们的教学目标是一个报告资源:读取标题和状态,不发送消息、不写磁盘、不接外部账户。先把请求路径、返回内容和不存在时的结果写清楚,再选实现方式。

AFSBaseProvider 提供路由和通用行为,@Read 声明读取处理器,@List 声明列举处理器。处理器返回资源条目;AFS 调度层再把 provider 内部路径放回调用者的命名空间。继承基类不等于已经实现了所有操作。

typescript
// Handler fragment: not a complete provider or conformance fixture.
@Read("/report")
async readReport(ctx: RouteContext) {
  return {
    id: "report",
    path: ctx.path,
    content: { title: "Prepare the keynote", status: "draft" }
  };
}

为什么先只读

只读版本让我们先检查命名、内容和解释是否一致。增加写入时,还要决定校验、持久化、权限及冲突处理;不能用一个按钮的状态变化冒充这些行为。

完整实现应配合 provider 编写文档,并为具体能力准备一致性测试。