技能 GraphQL Architect
📦
GraphQL Architect
安全
使用企业级模式设计可扩展的 GraphQL API
构建生产级 GraphQL 系统需要具备联邦、性能和安全方面的专业知识。本技能提供经过验证的可扩展模式设计和优化模式。
支持: Claude Codex Code(CC)
1
下载技能 ZIP
2
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
3
开启并开始使用
测试它
正在使用“GraphQL Architect”。 Design a user profile schema with posts and comments
预期结果:
- type User {
- id: ID!
- username: String!
- email: String!
- profile: Profile
- posts: [Post!]!
- createdAt: DateTime!
- }
- type Profile {
- bio: String
- avatar: String
- location: String
- }
- type Post {
- id: ID!
- title: String!
- content: String!
- author: User!
- comments: [Comment!]!
- }
正在使用“GraphQL Architect”。 Optimize resolver fetching user posts
预期结果:
- Use DataLoader to batch and cache user post fetching:
- const postLoader = new DataLoader(async (userIds) => {
- const posts = await Post.findAll({
- where: { userId: userIds },
- include: [User]
- });
- return userIds.map(id => posts.filter(p => p.userId === id));
- });
- This reduces N queries to 1 batched query.
安全审计
安全v1 • 2/25/2026
Static analysis scanned 0 files with 0 lines and detected no suspicious patterns. This is a prompt-only skill containing instructional content for GraphQL architecture guidance. No executable code, network access, filesystem operations, or external command execution present.
0
已扫描文件
0
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude
质量评分
38
架构
100
可维护性
87
内容
50
社区
100
安全
74
规范符合性
你能构建什么
企业联邦架构
设计多团队联邦 GraphQL 架构,包含子图组合、模式治理和跨团队协作模式。
性能优化审计
分析现有 GraphQL 模式的 N+1 查询问题,实施 DataLoader 模式,并配置多级缓存策略。
安全加固实施
实施字段级授权、查询复杂度分析、速率限制和生产安全配置。
试试这些提示
基础模式设计
为 [resource type] 设计一个具有 CRUD 操作的 GraphQL 模式。包含适当的标量类型、用于变更的输入类型,并遵循命名约定。解释类型之间的关系。
联邦子图规划
为 [domain] 规划 Apollo Federation v2 子图。识别实体、key 指令和外部类型引用。展示此子图如何与整体联邦架构集成。
性能优化审查
审查此 GraphQL 模式和解析器实现的性能问题。识别 N+1 查询模式,建议 DataLoader 实现,并推荐字段级和查询级缓存策略。
安全配置审计
审计此 GraphQL 服务器配置的安全漏洞。检查内省设置、CORS 配置、速率限制、查询深度限制和字段级授权。提供具体的修复步骤。
最佳实践
- 设计模式时考虑版本控制和演进 - 删除前先弃用
- 为所有解析器获取实施 DataLoader 以防止 N+1 查询问题
- 在生产部署前配置查询复杂度分析和速率限制
避免
- 在 GraphQL 模式中直接暴露数据库模型而没有抽象层
- 返回无界限列表而不使用连接模式或分页
- 在解析器中实现业务逻辑而不是在专用服务层中
常见问题
什么是 Apollo Federation,什么时候应该使用它?
Apollo Federation 支持将 GraphQL 模式拆分到多个服务中。当多个团队拥有不同领域或微服务需要暴露统一 GraphQL API 时使用它。
如何防止 GraphQL 中的 N+1 查询问题?
使用 DataLoader 批量和缓存数据库请求。DataLoader 收集单个请求并作为单个批量查询执行,显著减少数据库往返次数。
生产 GraphQL API 的基本安全措施是什么?
实施查询深度限制、查询复杂度分析、速率限制、字段级授权、在生产环境中禁用内省,并配置正确的 CORS 头。
如何在 GraphQL 解析器中处理身份验证?
从 Apollo Server 设置的上下文中提取身份验证。在解析器中通过 context.user 访问用户信息,并使用中间件或指令模式实施字段级检查。
查询和变更有什么区别?
查询用于获取数据并可以缓存。变更用于修改数据并始终执行。使用查询进行读取操作,使用变更进行创建、更新或删除操作。
如何在 GraphQL 中实现实时功能?
使用 WebSocket 连接实现 GraphQL 订阅。在模式中定义订阅类型,实施发布订阅机制,并在断开连接时确保正确的授权和清理。