一键导入
authoring-proxy-source
Proxy Sources offer a build-a-bear type solution for irregular or JSON RPC APIs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Proxy Sources offer a build-a-bear type solution for irregular or JSON RPC APIs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Understand how sources declare operation capabilities via supportedOperations and how SourceList respects them.
FirestoreAdminSource connects google_cloud_firestore for server-side Dart applications to a SourceList.
FirestoreSource seamlessly connects Cloud Firestore streams to a SourceList.
Perform untyped Firestore document merges using the raw method on Firestore sources.
Cached data is mapped uniquely per request hash (RequestDetails with specific filter and pagination), supporting a powerful request-based caching behavior.
The SourceList class manages the delegation of read/write attempts to various configured Sources, with a read-thru cache system prioritizing local Sources.
| name | authoring-proxy-source |
| description | Proxy Sources offer a build-a-bear type solution for irregular or JSON RPC APIs. |
| metadata | {"last_modified":"Sat, 18 Apr 2026 1:52:50 GMT"} |
Proxy Sources offer a build-a-bear type solution for irregular or JSON RPC APIs.
final apiSource = ProxySource<User>(
sourceType: SourceType.remote,
bindings: userBindings,
setItemHandler: (WriteOperation<User> op) async {
// save [op.item], which is the User
},
);
Dart's type system giveth and Dart's type system taketh away.
Sufficiently consistent REST APIs can be highly automated, with every single data type in your application potentially served by the same RestSource which uses its getDetailUrl and getListUrl callbacks to determine where each and every record goes. This is nice for pkg:data_layer, but only because you have already lost type-safety across that boundary.
Conversely, APIs which preserve end-to-end type safety, like Serverpod, cannot be implemented as a single remote "ServerpodSource" for all data types, because each data type has its own concrete methods which must be called to read and write data.
For APIs like Serverpod, reach or a ProxySource like so:
class MyModelServerpodSource extends ProxySource {
MyModelServerpodSource(this.client) : super(
setItemHandler: (op) =>
client.specificSaveMethod(op.item);
);
/// This is the specific client Serverpod generated for your
/// app which contains your endpoints.
final Client client;
}
Rinse and repeat for each model and each operation you need to perform on those models. Sadly, the strength of Dart's type system prevents anything more streamlined without code generation.