trpc-on-demand-query
Installation
SKILL.md
tRPC 按需查询接口设计规范
本 Skill 指导在 tRPC 架构下,通过标准化的 include 和 fields 参数,为查询接口添加按需数据加载与字段裁剪能力,无需引入 GraphQL。
使用说明
- 阅读 按需查询设计指南,了解参数设计规范与执行流程
- 参考 Router 实现示例 了解完整实现
- 参考 Schema 定义示例:BattleSchema.ts、BattleExtendedSchema.ts、GetBattleInputSchema.ts
- 使用 检查清单 验证实现是否符合规范
核心规范
- 双参数设计:
include(扩展字段加载)+fields(响应裁剪),职责分离 - 三步执行流程:基础查询 → include 扩展加载 → fields 字段裁剪
- 枚举 include 选项:使用
z.enum([...])明确声明支持的扩展字段名 - 权限校验:扩展字段按需进行权限检查(不加载即不暴露)
- 一级限制:仅支持一级扩展,禁止嵌套 include(如
user.friends.votes) - 降级安全:
fields包含未加载的 include 字段时,静默忽略并记录 warning
Related skills
More from forge-town/skills
svg-icon-best-practice
Must follow when 管理或新增 React TypeScript 项目中的 SVG 图标组件,确保命名、封装方式和导出规范遵循项目标准规范。触发词:svg图标规范、图标组件管理、SVG图标规范审查。
46create-skills
Use when 需要创建新技能或更新现有技能,将领域知识、工作流程、脚本和工具集成打包为可复用 Skill;生成的新技能须使用中文编写。触发词:创建新技能、更新skill、新建技能包、扩展AI能力。
38zod-env-integration
Must follow when 配置类型安全的环境变量管理模块,基于 .env.example 使用 Zod 生成 env schema 和标准化管理工具。触发词:zod环境变量、env类型安全配置、环境变量schema。
38page-best-practice
Must follow when 创建或审查前端页面结构,确保遵循 Anatomy 规范,正确分离 Wrapper、Content 和 Optional Store 模块。触发词:创建页面、页面结构规范、前端页面解剖规范。
32store-best-practice
Must follow when 使用 Zustand 创建或重构状态管理 Store,确保遵循 slice 模式、Provider 设置和类型安全规范。触发词:创建store、zustand规范、状态管理最佳实践、store设计审查。
30service-best-practice
Must follow when 创建或重构 Service 层,基于 tRPC + Service + DAO 架构确保依赖注入、错误处理和业务逻辑分层符合规范。触发词:service规范、创建service层、服务层重构。
29