apollo-connectors
作成者: apollographql
REST APIを@sourceおよび@connectディレクティブを使用してGraphQLスーパーグラフに統合します。構造化された5ステップのプロセスを提供:API構造の調査、ディレクティブを使用したスキーマの実装、rover supergraph composeによる検証、コネクタの実行、テストカバレッジ。ヘッダー、ボディペイロード、N+1パターンのバッチ処理、$envによる環境変数インジェクションを含むリクエスト設定をサポート。フィールド選択、エイリアス、ネストデータのサブセレクション、エンティティ...によるレスポンスマッピングを処理します。
npx skills add https://github.com/apollographql/skills --skill apollo-connectorsApollo Connectors Schema Assistant
MCP Tools
If GraphOS MCP Tools are available, use them:
- connectors-spec: Fetch the complete Connectors specification before starting any connector work
- apollo_docs_search: Search for relevant documentation
- apollo_docs_read: Read specific documentation pages by slug
Documentation paths by topic:
- Requests:
/graphos/connectors/requests/url,/headers,/body,/batching - Responses:
/graphos/connectors/responses/fields,/error-handling - Mapping:
/graphos/connectors/mapping,/arrays,/enums,/literals - Entities:
/graphos/connectors/entities,/patterns
Process
Follow this 5-step process. DO NOT skip any steps.
Step 1: Research
- Understand the API being called and the structure of responses
- Ask the user for example API responses if not provided
- Fetch relevant documentation from MCP tools or reference files
- DO NOT write any code until research is complete
Step 2: Implement
- Create the schema using the template below
- Follow the grammar, methods, and variables in the reference files
- Ask clarifying questions if unsure about requirements
Step 3: Validate (Compose)
- Run
rover supergraph compose --config ./supergraph.yaml - Fix any composition errors before proceeding
Step 4: Execute
- Run
rover connector run --schema <file> -c "<Type.field>" -v "{}" - Verify the connector executes correctly
Step 5: Test
- Create or update test files under
/tests/ - Run
rover connector test - Ensure full test coverage for each connector
Schema Template
# Note to AI Friends: This is an Apollo Connectors schema. You should use your connectors-spec MCP tool if you have it available before editing this file.
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.12")
@link(url: "https://specs.apollo.dev/connect/v0.3", import: ["@source", "@connect"])
@source(name: "api_name", http: { baseURL: "https://api.example.com" })
type Query {
example(id: ID!): Example
@connect(
source: "api_name"
http: { GET: "/example/{$args.id}" }
selection: """
id
name
"""
)
}
type Example {
id: ID!
name: String
}
Version Requirements: Always use federation/v2.12 and connect/v0.3 unless specified otherwise.
Reference Files
Before implementing connectors, read the relevant reference files:
- Grammar - Selection mapping EBNF syntax
- Methods - Available transformation methods
- Variables - Available mapping variables
- Entities - Entity patterns and batching
- Validation - Rover commands for validation
- Troubleshooting - Common errors and solutions
Key Rules
Selection Mapping
- Prefer sub-selections over
->mapfor cleaner mappings - Do NOT use
$when selecting fields directly from root - Field aliasing:
newName: originalField(only when renaming) - Sub-selection:
fieldName { ... }(to map nested content)
# DO - Direct sub-selection for arrays
$.results {
firstName: name.first
lastName: name.last
}
# DO NOT - Unnecessary root $
$ {
id
name
}
# DO - Direct field selection
id
name
Entities
- Add
@connecton a type to make it an entity (no@keyneeded) - Create entity stubs in parent selections:
user: { id: userId } - When you see an ID field (e.g.,
productId), create an entity relationship - Each entity should have ONE authoritative subgraph with
@connect
Literal Values
Use $() wrapper for literal values in mappings:
$(1) # number
$(true) # boolean
$("hello") # string
$({"a": "b"}) # object
# In body
body: "$({ a: $args.a })" # CORRECT
body: "{ a: $args.a }" # WRONG - will not compose
Headers
http: {
GET: "/api"
headers: [
{ name: "Authorization", value: "Bearer {$env.API_KEY}" },
{ name: "X-Forwarded", from: "x-client" }
]
}
Batching
Convert N+1 patterns using $batch:
type Product @connect(
source: "api"
http: {
POST: "/batch"
body: "ids: $batch.id"
}
selection: "id name"
) {
id: ID!
name: String
}
Ground Rules
- NEVER make up syntax or directive values not in this specification
- NEVER use
--elv2-license accept(for humans only) - ALWAYS ask for example API responses before writing code
- ALWAYS validate with
rover supergraph composeafter changes - ALWAYS create entity relationships when you see ID fields
- Prefer
$envover$configfor environment variables - Use
rover devfor running Apollo Router locally
apollographqlのその他のスキル
apollo-client
apollographql
Apollo Clientは、GraphQLを使用してローカルデータとリモートデータの両方を管理できる、JavaScript向けの包括的な状態管理ライブラリです。バージョン4.xでは、キャッシュの改善、TypeScriptサポートの強化、React 19との互換性がもたらされています。
official
apollo-client
apollographql
We need to translate the given text from English to Japanese. The text is a description of an agent skill for apollo-client. We must preserve the name "apollo-client" if it appears, but it does not appear in the text. The text mentions "Apollo Client 4.x" - that should be preserved as is. Also preserve technical terms like useQuery, useLazyQuery, useMutation, useSuspenseQuery, useBackgroundQuery, Vite, CRA, Next.js App Router, React Server Components, React Router 7, streaming SSR, TanStack Start, React 18+, 19. Also preserve numbers and URLs (none here). Do not add any extra commentary or labels. Just translate the text. The text: "Comprehensive guide for building React applications with Apollo Client 4.x, covering queries, mutations, caching, and state management. Supports multiple React frameworks and setups: client-side apps (Vite, CRA), Next.js App Router with React Server Components, React Router 7 with streaming SSR, and TanStack Start Includes hooks
official
apollo-federation
apollographql
Apollo Federationは、複数のGraphQL API(サブグラフ)を統合されたスーパーグラフに構成することを可能にします。
official
apollo-ios
apollographql
Apollo iOSは、Appleプラットフォーム向けの強く型付けされたGraphQLクライアントです。GraphQLの操作とスキーマからSwiftの型を生成し、async/awaitクライアント、正規化キャッシュ(インメモリまたはSQLite対応)、クエリ、ミューテーション、マルチパートサブスクリプションを処理するプラグ可能なインターセプターベースのHTTPトランスポート、および任意の操作タイプを伝送可能なオプションのWebSocketトランスポート(graphql-transport-ws)を搭載しています。
official
apollo-kotlin
apollographql
Apollo Kotlinは、GraphQLの操作とスキーマからKotlinモデルを生成する、強い型付けのGraphQLクライアントであり、Android、JVM、Kotlin Multiplatformプロジェクトで使用できます。
official
apollo-mcp-server
apollographql
Model Context Protocolを通じてAIエージェントをGraphQL APIに接続し、内蔵のイントロスペクションおよび操作ツールを提供します。GraphQL操作をMCPツールとして公開し、ローカルファイル、GraphOS Studioコレクション、永続化クエリマニフェストの3つの操作ソースをサポートします。スキーマ探索やアドホッククエリテストのための4つのイントロスペクションツール(introspect、search、validate、execute)を提供し、ミニフィケーションモードではコンパクトな表記でトークン使用量を削減します。静的ヘッダーを介した設定可能な認証、...
official
apollo-router
apollographql
Apollo Routerは、Apollo Federation 2のスーパーグラフを実行するためにRustで書かれた高性能なグラフルーターです。サブグラフの前に配置され、クエリの計画、実行、レスポンスの合成を処理します。
official
apollo-router-plugin-creator
apollographql
Apollo Router用のネイティブRustプラグインを作成します。
official