apollo-federation

Apollo Federation permite componer múltiples APIs de GraphQL (subgrafos) en un supergrafo unificado.

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

Apollo Federation Schema Authoring

Apollo Federation enables composing multiple GraphQL APIs (subgraphs) into a unified supergraph.

Federation 2 Schema Setup

Every Federation 2 subgraph must opt-in via @link:

extend schema
  @link(url: "https://specs.apollo.dev/federation/v2.12",
        import: ["@key", "@shareable", "@external", "@requires", "@provides"])

Import only the directives your subgraph uses.

Core Directives Quick Reference

DirectivePurposeExample
@keyDefine entity with unique keytype Product @key(fields: "id")
@shareableAllow multiple subgraphs to resolve fieldtype Position @shareable { x: Int! }
@externalReference field from another subgraphweight: Int @external
@requiresComputed field depending on external fieldsshippingCost: Int @requires(fields: "weight")
@providesConditionally resolve external field@provides(fields: "name")
@overrideMigrate field to this subgraph@override(from: "Products")
@inaccessibleHide from API schemainternalId: ID! @inaccessible
@interfaceObjectAdd fields to entity interfacetype Media @interfaceObject

Reference Files

Detailed documentation for specific topics:

  • Directives - All federation directives with syntax, examples, and rules
  • Schema Patterns - Multi-subgraph patterns and recipes
  • Composition - Composition rules, error codes, and debugging

Key Patterns

Entity Definition

type Product @key(fields: "id") {
  id: ID!
  name: String!
  price: Int
}

Entity Contributions Across Subgraphs

# Products subgraph
type Product @key(fields: "id") {
  id: ID!
  name: String!
  price: Int
}

# Reviews subgraph
type Product @key(fields: "id") {
  id: ID!
  reviews: [Review!]!
  averageRating: Float
}

Computed Fields with @requires

type Product @key(fields: "id") {
  id: ID!
  size: Int @external
  weight: Int @external
  shippingEstimate: String @requires(fields: "size weight")
}

Value Types with @shareable

type Money @shareable {
  amount: Int!
  currency: String!
}

Entity Stub (Reference Without Contributing)

type Product @key(fields: "id", resolvable: false) {
  id: ID!
}

Ground Rules

  • ALWAYS use Federation 2.x syntax with @link directive
  • ALWAYS import only the directives your subgraph uses
  • NEVER use @shareable without ensuring all subgraphs return identical values for that field
  • PREFER @key with single ID field for simple entity identification
  • USE rover supergraph compose to validate composition locally
  • USE rover subgraph check to validate against production supergraph

Más skills de apollographql

apollo-client
apollographql
Apollo Client es una biblioteca integral de gestión de estado para JavaScript que te permite manejar datos tanto locales como remotos con GraphQL. La versión 4.x trae un almacenamiento en caché mejorado, mejor soporte para TypeScript y compatibilidad con React 19.
official
apollo-client
apollographql
Guía completa para crear aplicaciones React con Apollo Client 4.x, que cubre consultas, mutaciones, almacenamiento en caché y gestión de estado. Compatible con múltiples frameworks y configuraciones de React: aplicaciones del lado del cliente (Vite, CRA), Next.js App Router con React Server Components, React Router 7 con SSR en streaming y TanStack Start. Incluye hooks para consultas (useQuery, useLazyQuery), mutaciones (useMutation) y patrones basados en Suspense (useSuspenseQuery, useBackgroundQuery) para React moderno 18+ y 19...
official
apollo-connectors
apollographql
Integra APIs REST en supergrafos GraphQL usando las directivas @source y @connect. Proporciona un proceso estructurado de 5 pasos: investigar la estructura de la API, implementar el esquema con directivas, validar mediante rover supergraph compose, ejecutar conectores y probar la cobertura. Soporta configuración de solicitudes que incluye encabezados, cuerpo de la carga útil, agrupación para patrones N+1 e inyección de variables de entorno mediante $env. Maneja el mapeo de respuestas con selección de campos, alias, subselecciones para datos anidados y entidad...
official
apollo-ios
apollographql
Apollo iOS es un cliente GraphQL fuertemente tipado para plataformas Apple. Genera tipos Swift a partir de tus operaciones y esquema GraphQL, e incluye un cliente async/await, una caché normalizada (en memoria o respaldada por SQLite), un transporte HTTP basado en interceptores conectables que maneja consultas, mutaciones y suscripciones multiparte, y un transporte WebSocket opcional (graphql-transport-ws) que puede transportar cualquier tipo de operación.
official
apollo-kotlin
apollographql
Apollo Kotlin es un cliente GraphQL fuertemente tipado que genera modelos Kotlin a partir de tus operaciones y esquema GraphQL, que puede utilizarse en proyectos Android, JVM y Kotlin Multiplatform.
official
apollo-mcp-server
apollographql
Conecta agentes de IA a APIs de GraphQL a través del Protocolo de Contexto de Modelo con herramientas integradas de introspección y operación. Expone operaciones de GraphQL como herramientas MCP; admite tres fuentes de operación: archivos locales, colecciones de GraphOS Studio y manifiestos de consultas persistentes. Proporciona cuatro herramientas de introspección (introspect, search, validate, execute) para exploración de esquemas y pruebas de consultas ad-hoc; el modo de minificación reduce el uso de tokens con notación compacta. Autenticación configurable mediante encabezados estáticos,...
official
apollo-router
apollographql
Apollo Router es un enrutador de grafos de alto rendimiento escrito en Rust para ejecutar supergrafos de Apollo Federation 2. Se sitúa frente a tus subgrafos y maneja la planificación de consultas, ejecución y composición de respuestas.
official
apollo-router-plugin-creator
apollographql
Crea plugins nativos de Rust para Apollo Router.
official