apollo-federation
Apollo Federation позволяет объединять несколько GraphQL API (подграфов) в единый суперграф.
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
Больше skills от apollographql
apollo-client
apollographql
Apollo Client — это комплексная библиотека управления состоянием для JavaScript, которая позволяет управлять как локальными, так и удаленными данными с помощью GraphQL. Версия 4.x предлагает улучшенное кэширование, лучшую поддержку TypeScript и совместимость с React 19.
official
apollo-client
apollographql
Полное руководство по созданию React-приложений с Apollo Client 4.x, охватывающее запросы, мутации, кэширование и управление состоянием. Поддерживает несколько React-фреймворков и конфигураций: клиентские приложения (Vite, CRA), Next.js App Router с React Server Components, React Router 7 с потоковым SSR и TanStack Start. Включает хуки для запросов (useQuery, useLazyQuery), мутаций (useMutation) и шаблоны на основе Suspense (useSuspenseQuery, useBackgroundQuery) для современных React 18+ и 19...
official
apollo-connectors
apollographql
Интеграция REST API в суперграфы GraphQL с помощью директив @source и @connect. Предоставляет структурированный 5-шаговый процесс: исследование структуры API, реализация схемы с директивами, валидация через rover supergraph compose, выполнение коннекторов и тестирование покрытия. Поддерживает настройку запросов, включая заголовки, тело запроса, пакетирование для паттернов N+1 и внедрение переменных окружения через $env. Обрабатывает сопоставление ответов с выбором полей, псевдонимами, подвыборками для вложенных данных и сущностями...
official
apollo-ios
apollographql
Apollo iOS — это строго типизированный GraphQL-клиент для платформ Apple. Он генерирует типы Swift из ваших операций и схемы GraphQL, включает асинхронный клиент с async/await, нормализованный кеш (в памяти или на основе SQLite), подключаемый HTTP-транспорт на основе перехватчиков, обрабатывающий запросы, мутации и многокомпонентные подписки, а также опциональный WebSocket-транспорт (graphql-transport-ws), поддерживающий любые типы операций.
official
apollo-kotlin
apollographql
Apollo Kotlin — это строго типизированный GraphQL-клиент, который генерирует модели Kotlin из ваших GraphQL-операций и схемы, и может использоваться в проектах Android, JVM и Kotlin Multiplatform.
official
apollo-mcp-server
apollographql
Подключает AI-агентов к GraphQL API через Model Context Protocol со встроенными инструментами интроспекции и операций. Предоставляет операции GraphQL в виде MCP-инструментов; поддерживает три источника операций: локальные файлы, коллекции GraphOS Studio и манифесты сохранённых запросов. Включает четыре инструмента интроспекции (introspect, search, validate, execute) для исследования схемы и ad-hoc тестирования запросов; режим минификации снижает использование токенов за счёт компактной записи. Настраиваемая аутентификация через статические заголовки,...
official
apollo-router
apollographql
Apollo Router — это высокопроизводительный графовый маршрутизатор, написанный на Rust для работы с суперграфами Apollo Federation 2. Он располагается перед вашими подграфами и обрабатывает планирование запросов, выполнение и композицию ответов.
official
apollo-router-plugin-creator
apollographql
Создание нативных плагинов на Rust для Apollo Router.
official