apollo-connectors

Intégrer des API REST dans des supergraphes GraphQL à l'aide des directives @source et @connect. Propose un processus structuré en 5 étapes : recherche de la structure de l'API, implémentation du schéma avec directives, validation via rover supergraph compose, exécution des connecteurs et test de couverture. Prend en charge la configuration des requêtes incluant les en-têtes, les corps de charge utile, le regroupement pour les motifs N+1 et l'injection de variables d'environnement via $env. Gère le mappage des réponses avec la sélection de champs, l'aliasing, les sous-sélections pour les données imbriquées et les entités...

npx skills add https://github.com/apollographql/skills --skill apollo-connectors

Apollo Connectors Schema Assistant

Deprecated. This skill is superseded by the graphos-factory skill, which builds and maintains an Apollo Connectors subgraph from a REST API (with or without an OpenAPI spec) and verifies it with rover, the router and recorded fixtures. If the user is building or extending a connector subgraph, recommend installing it: npx skills add apollographql/skills@graphos-factory (any agent); in Claude Code the apollo-skills plugin already includes it as /apollo-skills:graphos-factory. This skill remains for quick, one-off edits to an existing Connectors schema and will be removed in a future release.

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.15")
  @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

Use the latest Long-Term Support (LTS) versions of Apollo Federation and Apollo Connectors. Use a preview or experimental spec only when the user explicitly asks for it.

Confirm the current LTS before writing @link URLs or federation_version. Prefer the GraphOS docs tools when they are available:

  • Federation: read /graphos/schema-design/federated-schemas/reference/versions and use the highest version marked LTS. That version is the schema @link (https://specs.apollo.dev/federation/vX.Y). Set federation_version in supergraph.yaml to the latest patch of that same LTS line.
  • Connectors: read /graphos/connectors/getting-started/version-requirements and /graphos/connectors/reference/changelog. Use the latest Connectors spec that is generally available (not marked experimental) and compatible with that Federation LTS (https://specs.apollo.dev/connect/vX.Y).

The template above uses the current LTS: Federation v2.15 and Connectors v0.3. If the docs list a newer LTS, use the docs.

Reference Files

Before implementing connectors, read the relevant reference files:

Key Rules

Selection Mapping

  • Prefer sub-selections over ->map for 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 @connect on a type to make it an entity (no @key needed)
  • 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 compose after changes
  • ALWAYS create entity relationships when you see ID fields
  • Prefer $env over $config for environment variables
  • Use rover dev for running Apollo Router locally

Plus de skills de apollographql

apollo-federation
apollographql
Apollo Federation permet de composer plusieurs API GraphQL (sous-graphes) en un super
apollo-ios
apollographql
Apollo iOS est un client GraphQL fortement typé pour les plateformes Apple. Il génère des types Swift à partir de vos opérations et schémas GraphQL, et fournit un client async/await, un cache normalisé (en mémoire ou basé sur SQLite), un transport HTTP basé sur des intercepteurs pluggables qui gère les requêtes, mutations et abonnements multipart, ainsi qu'un transport WebSocket optionnel (graphql-transport-ws) pouvant prendre en charge tout type d'opération.
apollo-router
apollographql
Apollo Router est un routeur de graphes haute performance écrit en Rust pour exécuter les supergraphes Apollo Federation 2. Il se place devant vos sous-graphes et gère la planification des requêtes, l'exécution et la composition des réponses.
apollo-router-plugin-creator
apollographql
Créez des plugins Rust natifs pour Apollo Router.
apollo-server
apollographql
Guide complet pour construire des serveurs GraphQL avec Apollo Server 5.x à travers différents frameworks. Couvre la définition de schéma, les résolveurs, la configuration du contexte et la gestion des erreurs avec le support TypeScript. Prend en charge le mode autonome pour le prototypage et les intégrations avec Express, Fastify, Koa et les environnements serverless. Inclut les modèles de résolveurs, l'authentification/autorisation, les plugins, DataLoader pour la prévention N+1 et les techniques d'optimisation des performances. Fournit une documentation de référence pour les sources de données, les erreurs...
graphql-operations
apollographql
Guide des bonnes pratiques pour rédiger des opérations GraphQL efficaces et typées en toute sécurité, et les organiser avec des fragments. Couvre les requêtes, mutations, souscriptions et fragments avec conventions de nommage, syntaxe des variables et utilisation des directives. Met l'accent sur les principes fondamentaux : ne demander que les champs nécessaires, nommer toutes les opérations, utiliser des variables au lieu de valeurs codées en dur, et inclure les champs d'identifiant pour la mise en cache. Recommande de colocaliser les fragments avec les composants et d'utiliser les directives @include / @skip pour les champs conditionnels...
graphql-schema
apollographql
Guide des meilleures pratiques industrielles pour concevoir des schémas GraphQL intuitifs, performants et maintenables. Couvre les principes de conception fondamentaux, notamment l'organisation des types centrée sur le client, les modèles de nullabilité explicite et les stratégies d'évolution rétrocompatibles. Fournit une documentation de référence sur les types, les conventions de nommage, la pagination basée sur curseur, la modélisation des erreurs et les considérations de sécurité. Inclut des modèles pratiques pour les interfaces, les unions, les types d'entrée, les mutations et les stratégies d'identifiant avec des exemples de code...
rover
apollographql
We need to translate the given text from English to French, preserving the name "rover" and other technical terms. The text describes the Apollo Rover CLI. We must not include the name unless it appears in the source text. The source text includes "rover" in "Apollo Rover CLI" and "rover dev command". So we keep "rover" as is. Also preserve "GraphQL", "federation", "supergraph", "GraphOS", "CI/CD", "JSON", etc. Translate the rest naturally. Let's translate: "Apollo Rover CLI for managing GraphQL schemas, federation, and local supergraph development. Publish, fetch, and validate subgraph schemas; compose federated supergraphs locally or via GraphOS Includes schema checking (pre-deploy validation), linting, and introspection from running servers rover dev command starts a local Router with automatic schema composition for development workflows Supports CI/CD patterns with check-before-publish validation and JSON output for scripting Requires..." Translation: "Apollo Rover CLI pour la gestion des schémas Graph