apollo-federation
por apollographql
Apollo Federation permite componer múltiples APIs de GraphQL (subgrafos) en un supergrafo unificado.
npx skills add https://github.com/apollographql/skills --skill apollo-federationApollo 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
| Directive | Purpose | Example |
|---|---|---|
@key | Define entity with unique key | type Product @key(fields: "id") |
@shareable | Allow multiple subgraphs to resolve field | type Position @shareable { x: Int! } |
@external | Reference field from another subgraph | weight: Int @external |
@requires | Computed field depending on external fields | shippingCost: Int @requires(fields: "weight") |
@provides | Conditionally resolve external field | @provides(fields: "name") |
@override | Migrate field to this subgraph | @override(from: "Products") |
@inaccessible | Hide from API schema | internalId: ID! @inaccessible |
@interfaceObject | Add fields to entity interface | type 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
@linkdirective - ALWAYS import only the directives your subgraph uses
- NEVER use
@shareablewithout ensuring all subgraphs return identical values for that field - PREFER
@keywith single ID field for simple entity identification - USE
rover supergraph composeto validate composition locally - USE
rover subgraph checkto 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