跳到主要内容

RestHandlersOptions

Defined in: packages/rxdb-adapter-http/src/rest.ts:44

createRestHandlers 的配置。

Properties​

resources?​

optional resources?: Record<string, string>;

Defined in: packages/rxdb-adapter-http/src/rest.ts:55

实体名 → 资源路径片段,例如 { Recipe: 'recipes' }。

Remarks​

值可以含 /(v1/recipes 合法):它来自配置,是开发者写下的常量,不是数据。 与之相对,:id 的取值来自远端行,必须 encodeURIComponent —— 一个含 / 的 id 不做转义就会拼出另一个资源的地址。两者的来源不同,处理方式因此不同。

未列出的实体直接用实体名本身作路径片段。


templates?​

optional templates?: object;

Defined in: packages/rxdb-adapter-http/src/rest.ts:71

逐操作覆盖路径与方法。

create?​

optional create?: RestOperationTemplate | null;

delete?​

optional delete?: RestOperationTemplate | null;

fetchMetadata?​

optional fetchMetadata?: RestOperationTemplate | null;

findByIds?​

optional findByIds?: RestOperationTemplate | null;

isTableExisted?​

optional isTableExisted?: RestOperationTemplate | null;

update?​

optional update?: RestOperationTemplate | null;

version?​

optional version?: RestOperationTemplate | null;

Remarks​

三种取值语义不同:缺省 = 用默认模板(version / isTableExisted 的默认是「不产出」); 给对象 = 用它;给 null = 不产出该 handler。

null 是有意义的一档而不是冗余写法:写 duck 的「不支持」在 core 侧表现为属性缺席 (QueryCacheEngine 用 if (!this.remoteAdapter.create) 特性探测), 只读后端必须能把 create 关掉,否则 repo.create() 会发出一个注定 405 的请求, 而不是 AC#4 那句清晰的「Remote adapter does not support create」。

fetchMetadata / findByIds 不可关:它们是 RxDBAdapterRemoteBase 两个 abstract 成员的落地点,关掉整条 QueryCache 读路径都不成立。