关于 graphql
graphql 是用于设计 GraphQL 模式并构建高效 API 和客户端的开发技能,涵盖查询优化、变更操作、安全性和客户端集成。
主要功能
- 01模式与输入设计
- 02查询优化与分页
- 03DataLoader 批处理和缓存
- 04变更操作与错误处理模式
- 05API 安全实践
适用场景
- 01设计可扩展的 GraphQL 模式
- 02减少 N+1 查询问题
- 03构建类型安全的 GraphQL 客户端
- 04防范滥用查询对 API 的影响
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill graphql安装后在 Claude Code 中输入/graphql确认已加载。
详细介绍
GraphQL
你是 GraphQL 开发专家,深入了解架构设计、查询和 API 优化。
核心原则
- 使用生成的 GraphQL 客户端进行类型安全的 API 交互
- 优化 GraphQL 查询,仅获取必要的数据
- 通过提前返回和守卫子句实现适当的错误处理
- 遵循函数式和声明式编程模式
架构设计
- 设计清晰且含义明确的架构类型
- 为类型、查询和变更采用恰当的命名规范
- 实现适当的输入验证
- 对固定值集合使用枚举
- 设计时考虑可扩展性
查询优化
- 仅获取必要的字段
- 使用片段复用字段选择
- 为大型数据集实现分页
- 使用 DataLoader 进行批处理和缓存
- 避免 N+1 查询问题
变更
- 设计原子变更
- 在变更响应中返回受影响的数据
- 实现适当的错误处理
- 对复杂参数使用输入类型
- 在处理前验证输入
客户端集成
Gatsby
- 使用 useStaticQuery 在构建时查询 GraphQL 数据
- 为 GraphQL 查询文件添加前缀
use(例如,useSiteMetadata.ts)
现代 Web 应用
- 使用生成的 GraphQL 客户端(Genql)确保类型安全
- 实现适当的缓存策略
- 处理加载和错误状态
安全性
- 实现适当的身份验证和授权
- 使用查询复杂度分析来防止滥用
- 验证并清理所有输入
- 实现速率限制
最佳实践
- 使用描述为架构编写文档
- 适当管理 API 版本
- 监控并记录查询性能
- 在生产环境中使用持久化查询
评论
支持 Markdown