本文へ移動
cccskills
無料GitHub で公開日本語紹介

building-graphql-server

GraphQL APIのスキーマやリゾルバーを設計し、認可、効率的なデータ取得、リアルタイム購読を備えたサーバーを構築するスキルです。

原文原文の説明を見る

Build production-ready GraphQL servers with schema design, resolvers, and subscriptions. Use when building GraphQL APIs with schemas and resolvers. Trigger with phrases like "build GraphQL API", "create GraphQL server", or "setup GraphQL".

jeremylongshore/tons-of-skills-marketplaceスター 2,884(GitHub 2,884 + cccskills 0)
連携ツールRedis

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • GraphQL APIのスキーマを設計したいとき
  • リゾルバーの重複問い合わせを減らしたいとき
  • フィールド単位の認可を実装したいとき
  • リアルタイム購読を追加したいとき
  • GraphQL APIを統合テストしたいとき

日本語での紹介

できること

GraphQLサーバーの設計から実装、テストまでを進めます。SDL先行またはコード先行でスキーマを作り、Query・Mutation・Subscriptionや入力型、ページネーション用の型を定義します。リゾルバーではDataLoaderを使って関連データの取得をまとめ、同じ問い合わせの繰り返しを抑えます。入力値の検証、フィールド単位の認可、クエリの深さや複雑さの制限、WebSocketによるリアルタイム購読も扱います。graphql-codegenによるTypeScript型生成や、クエリ・ミューテーション・購読のテストも対象です。

こんなときに便利

Node.jsまたはPythonでGraphQL APIを新規構築するときや、既存サーバーに認可や購読機能を追加するときに向いています。ネストしたデータ取得の効率を上げたい場合や、スキーマと実装の型をそろえて管理したい場合にも使えます。

使い方の例

  • 「商品カタログ用のGraphQLスキーマとリゾルバーを設計してください」
  • 「ネストした問い合わせの重複アクセスを減らし、認可も追加してください」
  • 「WebSocket購読を実装してテストしてください」

注意点

Node.js 18以降またはPython 3.10以降の実行環境が必要です。データソースとなるデータベースとORMを想定し、本番の複数インスタンス構成ではRedisを使います。Apollo Server、Yoga、Mercurius、Strawberryなどを扱います。ライセンスはMITです。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(4)

  • SKILL.md5.4 KB
  • references/errors.md1.0 KB
  • references/examples.md6.1 KB
  • references/implementation.md1.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Building GraphQL Server

Overview

Build production-ready GraphQL servers with SDL-first or code-first schema design, efficient resolver implementations with DataLoader batching, real-time subscriptions via WebSocket, and field-level authorization. Support Apollo Server, Yoga, Mercurius, and Strawberry across Node.js and Python runtimes.

Prerequisites

  • Node.js 18+ with Apollo Server/Yoga/Mercurius, or Python 3.10+ with Strawberry/Ariadne
  • Database with ORM (Prisma, TypeORM, SQLAlchemy) for resolver data sources
  • Redis for subscription pub/sub and DataLoader caching (production deployments)
  • GraphQL client for testing: GraphiQL, Apollo Studio, or Insomnia
  • graphql-codegen for TypeScript type generation from schema (recommended)

Instructions

  1. Examine existing data models, database schemas, and business requirements using Read and Glob to determine the entity graph and relationship structure.
  2. Design the GraphQL schema with type definitions, including Query, Mutation, and Subscription root types, input types for mutations, and connection types for paginated lists.
  3. Implement resolvers for each field, using DataLoader to batch and deduplicate database queries for nested relationships (N+1 query prevention).
  4. Add input validation on mutation arguments using custom scalars (DateTime, Email, URL) and directive-based validation (@constraint(minLength: 1, maxLength: 255)).
  5. Implement field-level authorization using schema directives (@auth(requires: ADMIN)) or resolver middleware that checks user roles from the GraphQL context.
  6. Configure query complexity analysis and depth limiting to prevent abusive queries (maximum depth of 7, maximum complexity score of 1000).
  7. Set up real-time subscriptions using graphql-ws protocol over WebSocket with Redis pub/sub for multi-instance message distribution.
  8. Generate TypeScript types from the schema using graphql-codegen to ensure type safety between schema definitions and resolver implementations.
  9. Write integration tests using executeOperation for query/mutation testing and WebSocket client tests for subscription verification.

See references/implementation.md for the full implementation guide.

Output

  • ${CLAUDE_SKILL_DIR}/src/schema/ - GraphQL SDL type definitions organized by domain
  • ${CLAUDE_SKILL_DIR}/src/resolvers/ - Resolver implementations per type with DataLoader integration
  • ${CLAUDE_SKILL_DIR}/src/dataloaders/ - DataLoader factories for batched database queries
  • ${CLAUDE_SKILL_DIR}/src/directives/ - Custom schema directives (auth, validation, caching)
  • ${CLAUDE_SKILL_DIR}/src/scalars/ - Custom scalar type definitions (DateTime, JSON, Email)
  • ${CLAUDE_SKILL_DIR}/src/subscriptions/ - Subscription resolvers with pub/sub configuration
  • ${CLAUDE_SKILL_DIR}/generated/types.ts - Auto-generated TypeScript types from schema

Error Handling

ErrorCauseSolution
N+1 query detectedResolver fetches related records individually inside list resolverWrap data access in DataLoader; batch by parent ID array; cache within request scope
Query complexity exceededClient sends deeply nested query exceeding complexity budgetReturn error with current complexity score and maximum allowed; suggest query simplification
Subscription connection droppedWebSocket heartbeat timeout or network interruptionImplement automatic reconnection in client; use graphql-ws connectionInitWaitTimeout
Partial resolver failureOne field resolver throws while others succeedReturn partial data with errors array per GraphQL spec; log failed resolver with context
Schema stitching conflictDuplicate type names when merging multiple schema modulesUse schema namespacing or federation with @key directives to resolve type ownership

Refer to references/errors.md for comprehensive error patterns.

Examples

E-commerce product catalog: Schema with Product, Category, Review types, DataLoader-backed resolvers for nested queries like products { reviews { author } }, and a productUpdated subscription for inventory changes.

Multi-tenant SaaS dashboard: Code-first schema using TypeGraphQL decorators, tenant-scoped resolvers extracting tenantId from JWT context, and field-level visibility based on subscription plan tier.

Federated microservice graph: Apollo Federation with @key and @external directives across User, Order, and Product subgraphs, composed into a unified supergraph with a gateway router.

See references/examples.md for additional examples.

Resources

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

abridge-ci-integration

無料概要あり

Abridge連携コードのCIに合成データを使った回帰チェックを加え、同意状態、ノート確認、ログの秘匿、ロールバックなど顧客側の処理を検証します。

  • Abridge連携の回帰テストを追加したいとき
  • 同意やノート確認の処理を検証したいとき
  • ログに機微情報が出ないか確かめたいとき
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

abridge-common-errors

無料概要あり

Abridgeの録音、記録の確認、Epicへの引き渡し、アクセスの不具合を観測情報から切り分け、患者情報を抑えた証拠と担当窓口への引き継ぎ資料を整理するスキル。

  • 録音とアップロード障害の切り分け
  • 記録生成の遅延や編集画面の不具合調査
  • Epic連携障害の担当窓口の特定
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

abridge-core-workflow-a

無料概要あり

同意確認から録音、生成メモの根拠確認、編集、最終確定まで、臨床文書作成の手順と確認ポイントを整理するスキルです。

  • 診療メモ作成の手順を導入・監査したいとき
  • 同意から医師の確認までの流れを整理したいとき
  • 下書きの根拠確認と停止条件を定めたいとき
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

abridge-core-workflow-b

無料概要あり

Abridgeで臨床家が確認した記録内容が、承認済みの手順でEpicの適切なテンプレート欄へ渡るか、テスト記録を使って対応関係や例外を検証するスキルです。

  • AbridgeとEpicの記録欄の対応を確認したいとき
  • 部門ごとの連携設定を監査したいとき
  • 承認済みテスト記録で連携を検証したいとき
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

abridge-cost-tuning

無料概要あり

Abridgeの導入・更新判断に向け、利用定着率や業務の完了状況、診療記録の品質、支援負担を契約に基づく費用情報と照らし、継続や改善の選択肢を整理するスキル。

  • Abridge導入後の定着率確認
  • 契約更新の判断材料をまとめたいとき
  • 診療環境ごとの業務成果の比較
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

abridge-debug-bundle

無料概要あり

Abridgeの障害調査で、録音や診療記録を含めず、許可した項目だけを集めたサポート用資料と確認用マニフェストを作成します。

  • 障害サポート用の証拠をまとめたいとき
  • 共有資料の除外項目を記録したいとき
  • 調査情報を安全な経路で引き継ぎたいとき
jeremylongshore/tons-of-skills-marketplace2,8842026年10月29日 更新

jeremylongshore のスキルをすべて見る

このスキルの問題を報告する