apollo-federation

Apollo Federation ermöglicht das Zusammenführen mehrerer GraphQL-APIs (Subgraphen) zu einem einheitlichen Supergraphen.

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

Mehr Skills von apollographql

apollo-client
apollographql
Apollo Client ist eine umfassende Zustandsverwaltungsbibliothek für JavaScript, die es Ihnen ermöglicht, sowohl lokale als auch entfernte Daten mit GraphQL zu verwalten. Version 4.x bietet verbessertes Caching, bessere TypeScript-Unterstützung und Kompatibilität mit React 19.
official
apollo-client
apollographql
Umfassender Leitfaden zum Erstellen von React-Anwendungen mit Apollo Client 4.x, der Abfragen, Mutationen, Caching und Zustandsverwaltung abdeckt. Unterstützt mehrere React-Frameworks und -Setups: clientseitige Apps (Vite, CRA), Next.js App Router mit React Server Components, React Router 7 mit Streaming SSR und TanStack Start. Enthält Hooks für Abfragen (useQuery, useLazyQuery), Mutationen (useMutation) und Suspense-basierte Muster (useSuspenseQuery, useBackgroundQuery) für modernes React 18+ und 19...
official
apollo-connectors
apollographql
Integrieren Sie REST-APIs in GraphQL-Supergraphen mithilfe der @source- und @connect-Direktiven. Bietet einen strukturierten 5-Schritte-Prozess: API-Struktur analysieren, Schema mit Direktiven implementieren, via rover supergraph compose validieren, Connectors ausführen und Abdeckung testen. Unterstützt Anfragekonfiguration einschließlich Headern, Body-Payloads, Batching für N+1-Muster und Umgebungsvariablen-Injektion via $env. Behandelt Antwort-Mapping mit Feldauswahl, Aliasing, Unterauswahlen für verschachtelte Daten und Entitäten...
official
apollo-ios
apollographql
Apollo iOS ist ein stark typisierter GraphQL-Client für Apple-Plattformen. Er generiert Swift-Typen aus Ihren GraphQL-Operationen und Ihrem Schema und enthält einen Async/Await-Client, einen normalisierten Cache (im Arbeitsspeicher oder SQLite-gestützt), einen steckbaren, auf Interceptoren basierenden HTTP-Transport, der Abfragen, Mutationen und Multipart-Abonnements verarbeitet, sowie einen optionalen WebSocket-Transport (graphql-transport-ws), der jeden Operationstyp übertragen kann.
official
apollo-kotlin
apollographql
Apollo Kotlin ist ein stark typisierter GraphQL-Client, der aus Ihren GraphQL-Operationen und Ihrem Schema Kotlin-Modelle generiert, die in Android-, JVM- und Kotlin-Multiplatform-Projekten verwendet werden können.
official
apollo-mcp-server
apollographql
Verbinde KI-Agenten über das Model Context Protocol mit GraphQL-APIs, inklusive integrierter Introspections- und Operationstools. Stellt GraphQL-Operationen als MCP-Tools bereit; unterstützt drei Operationsquellen: lokale Dateien, GraphOS Studio-Sammlungen und persistierte Query-Manifeste. Bietet vier Introspection-Tools (introspect, search, validate, execute) zur Schemaerkundung und Ad-hoc-Query-Tests; der Minifizierungsmodus reduziert Token-Nutzung durch kompakte Notation. Konfigurierbare Authentifizierung über statische Header,...
official
apollo-router
apollographql
Apollo Router ist ein leistungsstarker Graph-Router, der in Rust geschrieben wurde und für den Betrieb von Apollo Federation 2-Supergraphen entwickelt wurde. Er sitzt vor Ihren Subgraphen und übernimmt die Abfrageplanung, -ausführung und Antwortkomposition.
official
apollo-router-plugin-creator
apollographql
Erstelle native Rust-Plugins für Apollo Router.
official