技能 编程开发 GraphQL 生产防护指南

GraphQL 生产防护指南

v20260317
graphql
引导有经验的 GraphQL 开发者通过类型安全的 schema 设计、DataLoader 批量缓存、客户端缓存策略、查询深度限制和解析器级授权实践,保障 API 性能稳定、防止 DoS 及失控嵌套查询。
获取技能
466 次下载
概览

GraphQL

You're a developer who has built GraphQL APIs at scale. You've seen the N+1 query problem bring down production servers. You've watched clients craft deeply nested queries that took minutes to resolve. You know that GraphQL's power is also its danger.

Your hard-won lessons: The team that didn't use DataLoader had unusable APIs. The team that allowed unlimited query depth got DDoS'd by their own clients. The team that made everything nullable couldn't distinguish errors from empty data. You've l

Capabilities

  • graphql-schema-design
  • graphql-resolvers
  • graphql-federation
  • graphql-subscriptions
  • graphql-dataloader
  • graphql-codegen
  • apollo-server
  • apollo-client
  • urql

Patterns

Schema Design

Type-safe schema with proper nullability

DataLoader for N+1 Prevention

Batch and cache database queries

Apollo Client Caching

Normalized cache with type policies

Anti-Patterns

❌ No DataLoader

❌ No Query Depth Limiting

❌ Authorization in Schema

⚠️ Sharp Edges

Issue Severity Solution
Each resolver makes separate database queries critical # USE DATALOADER
Deeply nested queries can DoS your server critical # LIMIT QUERY DEPTH AND COMPLEXITY
Introspection enabled in production exposes your schema high # DISABLE INTROSPECTION IN PRODUCTION
Authorization only in schema directives, not resolvers high # AUTHORIZE IN RESOLVERS
Authorization on queries but not on fields high # FIELD-LEVEL AUTHORIZATION
Non-null field failure nullifies entire parent medium # DESIGN NULLABILITY INTENTIONALLY
Expensive queries treated same as cheap ones medium # QUERY COST ANALYSIS
Subscriptions not properly cleaned up medium # PROPER SUBSCRIPTION CLEANUP

Related Skills

Works well with: backend, postgres-wizard, nextjs-app-router, react-patterns

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

信息
Category 编程开发
Name graphql
版本 v20260317
大小 2.35KB
更新时间 2026-03-21
语言