apollo-federation
oleh apollographql
Apollo Federation memungkinkan penggabungan beberapa API GraphQL (subgraf) menjadi satu supergraf yang terpadu.
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
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