@ cratetack/ 适应器- rtk
一个 RTK 查询 BaseQueryFn 适配器关闭
CrateStack 生成的 TypeScript RPC 客户端(transport rpc schemas)——发送每个端点
通过相同的运行时间和 RpcLink 链 (@cratestack/link-batch, (中文(简体) ), @cratestack/link-logger, (中文(简体) ),
等)生成的客户端的其余使用,而不是RTK查询的默认 fetchBaseQuery
重新执行电线协议.
这个包裹是原始的; cratestack generate-typescript --rtk (cratestack #906) 生成一个
满 createApi 端点设置在它的顶上—— src/rtk-api.ts是因为 createCratestackRtkApi(client),一个
每个模型操作和每个模型 procedure,与 providesTags编号 :invalidatesTags 来源于
而不是手写 下面的手写形状 仍然是产生的东西
代码在引擎盖下进行,并且是任何自定义超过生成器输出的引用
或写作 --template-dir 覆盖 rtk-rpc.ts.j2。 。 。 .
使用量
import { createRpcBaseQuery } from "@cratestack/adapter-rtk";
import { createApi } from "@reduxjs/toolkit/query/react";
import { client } from "./generated/client"; // your project's generated client instance
export const api = createApi({
reducerPath: "api",
baseQuery: createRpcBaseQuery(client.runtime),
endpoints: (builder) => ({
getWidget: builder.query<Widget, number>({
query: (id) => ({ opId: "model.Widget.get", input: { id } }),
}),
createOrder: builder.mutation<Order, CreateOrderInput>({
query: (input) => ({ opId: "model.Order.create", input }),
}),
}),
});
createRpcBaseQuery 需要一个 RpcCaller - 任何具有下列特性的物体: call<I, O>(opId, input, options?)
方法,也就是生成客户端的公众形状 .runtime 字段
(单位:千美元)CratestackRpcRuntime) (中文(简体) ). 调用失败的表面为 { status: "RPC_ERROR", data: RpcErrorBody }
当服务器返回结构错误时, 或 { status: "RPC_TRANSPORT_ERROR" } 网络
没有这样的身体.