SuperAPI AI 工具集

graphql-schema

通用与其它

查看项目

更新于 10-16 06:44

技能介绍

用途:该技能面向 GraphQL 操作编写与类型生成,适用于创建查询、变更(mutation),配合 Apollo Client 使用,或需要从 schema 生成类型时。

核心规则:不要内联 gql 字面量,应创建 .gql 文件;创建或修改 .gql 文件后始终运行 codegen;变更操作必须添加 onError 处理;使用生成的 hooks,不要手写原始 Apollo hooks。

文件结构:查询定义可放在组件目录,例如 src/components/ItemList/ 下包含 ItemList.tsx、GetItems.gql 与自动生成的 GetItems.generated.ts(不要手动编辑);共享变更可放在 src/graphql/mutations/ 下,例如 CreateItem.gql。

创建查询:先写 .gql 查询文件,再运行 npm run gql:typegen,然后导入生成的 hook(如 useGetItemsQuery)使用,处理 loading、error、empty 等状态。

创建变更:同样先写 .gql 文件并运行 codegen,再使用生成的 hook,必须提供 onError,通常结合 onCompleted 与 update 做成功反馈和缓存更新。变更触发 UI 要求:变更期间禁用按钮防止重复点击、显示加载状态、有 onError 处理器、显示成功反馈。

查询选项:fetchPolicy 可选 cache-first(数据少变)、cache-and-network(默认,快且新)、network-only(总是最新)、no-cache(从不缓存,少见);还可使用 notifyOnNetworkStatusChange、skip、pollInterval 等。乐观更新用于即时 UI 反馈,失败会自动回滚,但不适用于可能校验失败、服务器生成值、破坏性操作或影响其他用户的操作。片段(fragment)用于复用字段选择。

反模式:内联 gql、变更无错误处理、按钮未在变更时禁用。

代码生成命令:npm run gql:typegen(从 .gql 生成类型)、npm run sync-types(下载 schema 并生成类型)。

与其他技能集成:react-ui-patterns(查询的加载/错误/空状态)、testing-patterns(测试中 mock 生成的 hooks)、formik-patterns(变更提交模式)。

限制:仅在任务明确匹配上游来源与本地项目上下文时使用;应用更改前应验证命令、生成代码、依赖、凭据与外部服务行为;示例不能替代环境特定测试、安全审查,破坏性或高成本操作需用户批准。部分具体配置、平台与价格信息暂未提供。