apollo-federation

Apollo Federation memungkinkan penggabungan beberapa API GraphQL (subgraf) menjadi satu supergraf yang terpadu.

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

Lebih banyak skill dari apollographql

apollo-client
apollographql
Apollo Client adalah pustaka manajemen status yang komprehensif untuk JavaScript yang memungkinkan Anda mengelola data lokal dan jarak jauh dengan GraphQL. Versi 4.x menghadirkan caching yang lebih baik, dukungan TypeScript yang lebih baik, dan kompatibilitas dengan React 19.
official
apollo-client
apollographql
Panduan komprehensif untuk membangun aplikasi React dengan Apollo Client 4.x, mencakup kueri, mutasi, caching, dan manajemen status. Mendukung berbagai kerangka kerja dan pengaturan React: aplikasi sisi klien (Vite, CRA), Next.js App Router dengan React Server Components, React Router 7 dengan streaming SSR, dan TanStack Start. Termasuk hooks untuk kueri (useQuery, useLazyQuery), mutasi (useMutation), dan pola berbasis Suspense (useSuspenseQuery, useBackgroundQuery) untuk React 18+ dan 19 modern...
official
apollo-connectors
apollographql
Integrasikan REST API ke dalam supergraph GraphQL menggunakan direktif @source dan @connect. Menyediakan proses 5 langkah terstruktur: riset struktur API, implementasi skema dengan direktif, validasi melalui rover supergraph compose, jalankan konektor, dan uji cakupan. Mendukung konfigurasi permintaan termasuk header, payload body, batching untuk pola N+1, dan injeksi variabel lingkungan melalui $env. Menangani pemetaan respons dengan pemilihan bidang, aliasing, sub-pilihan untuk data bersarang, dan entitas...
official
apollo-ios
apollographql
Apollo iOS adalah klien GraphQL yang diketik secara kuat untuk platform Apple. Ia menghasilkan tipe Swift dari operasi dan skema GraphQL Anda, serta menyertakan klien async/await, cache yang dinormalisasi (berbasis memori atau SQLite), transport HTTP berbasis interceptor yang dapat dipasang untuk menangani kueri, mutasi, dan langganan multipart, serta transport WebSocket opsional (graphql-transport-ws) yang dapat membawa jenis operasi apa pun.
official
apollo-kotlin
apollographql
Apollo Kot
official
apollo-mcp-server
apollographql
Hubungkan agen AI ke API GraphQL melalui Model Context Protocol dengan alat introspeksi dan operasi bawaan. Mengekspos operasi GraphQL sebagai alat MCP; mendukung tiga sumber operasi: file lokal, koleksi GraphOS Studio, dan manifes kueri yang dipertahankan. Menyediakan empat alat introspeksi (introspeksi, pencarian, validasi, eksekusi) untuk eksplorasi skema dan pengujian kueri ad-hoc; mode minifikasi mengurangi penggunaan token dengan notasi ringkas. Otentikasi yang dapat dikonfigurasi melalui header statis,...
official
apollo-router
apollographql
Apollo Router adalah router graf berkinerja tinggi yang ditulis dalam Rust untuk menjalankan supergraf Apollo Federation 2. Router ini berada di depan subgraf Anda dan menangani perencanaan kueri, eksekusi, serta komposisi respons.
official
apollo-router-plugin-creator
apollographql
Buat plugin Rust asli untuk Apollo Router.
official