graphql
ベストプラクティスによるセキュアな GraphQL API の構築
GraphQL の柔軟性は、適切な制御がないとパフォーマンスとセキュリティの問題を引き起こす可能性があります。このスキルでは、DataLoader の使用、クエリの深さ制限、認証に関する実証済みのパターンを提供し、本番対応の GraphQL API を構築します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「graphql」を使用しています。 E コマース製品カタログのスキーマを設計する
期待される結果:
- Product、Category、Review タイプを備えた GraphQL スキーマ
- discountPrice などのオプションフィールドの適切な null 可能性
- 製品レビューのページネーションのための Connections
- 入力タイプを伴う CRUD 操作のミューテーション
「graphql」を使用しています。 ユーザー投稿リゾルバーの N+1 クエリを修正する
期待される結果:
- ユーザー ID 検索をバッチ処理する DataLoader 実装
- 重複クエリを防止するためのユーザー ID をキーとしたキャッシュ
- Apollo Server コンテキストとの統合
- N クエリから 1 つのバッチクエリへのパフォーマンス改善
セキュリティ監査
安全This skill is a documentation file containing GraphQL best practices and patterns. Static analysis flagged false positives: line 69 references related skills (not shell execution), and lines 3, 22, 34, 63, 72 contain markdown content (not cryptographic code). No executable code or security risks detected.
品質スコア
作れるもの
新しい API を構築するバックエンド開発者
最初から適切なパフォーマンス最適化とセキュリティ制御を備えた、本番対応の GraphQL API を設計・実装します。
GraphQL を統合するフロントエンドチーム
React アプリケーション向けに、正規化されたキャッシングと効率的なデータフェッチパターンを備えた Apollo Client を設定します。
既存の API を監査するテックリード
DataLoader の欠如、無制限のクエリの深さ、認証のギャップなど、一般的な GraphQL のアンチパターンを特定して修正します。
これらのプロンプトを試す
User、Post、Comment タイプを備えたブログの GraphQL スキーマを作成してください。適切な null 可能性、リレーションシップ、およびクエリとミューテーションとしての一般的な CRUD 操作を含めてください。
投稿の作成者を取得する GraphQL リゾルバーがあります。各投稿リゾルバーは個別のデータベースクエリを実行します。DataLoader を実装して、これらのクエリをバッチ処理しキャッシュする方法を示してください。
深くネストされた GraphQL クエリからの DoS 攻撃を防止するため、Apollo Server 用のクエリの深さ制限と複雑度解析を設定してください。設定とエラー処理を含めてください。
GraphQL リゾルバーでフィールドレベルの認証を実装する方法を示してください。一部のフィールドは、認証されたユーザーまたは特定のロールを持つユーザーにのみ表示される必要があります。
ベストプラクティス
- DataLoader を常に使用してデータベースクエリをバッチ処理し、N+1 問題を防止する
- DoS 攻撃から保護するためにクエリの深さと複雑度を制限する
- スキーマディレクティブだけでなく、リゾルバーで認証を実装する
回避
- DataLoader なしにリゾルバーで直接データベース呼び出しを行う
- GraphQL エンドポイントで無制限のクエリの深さを許可する
- 認証ロジックをスキーマディレクティブのみに依存する