Loading...
Loading...
Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requires, @provides, @override, @inaccessible), (5) troubleshooting composition errors, (6) any task involving federation schema design patterns.
npx skill4agent add apollographql/skills apollo-federation@linkextend schema
@link(url: "https://specs.apollo.dev/federation/v2.12",
import: ["@key", "@shareable", "@external", "@requires", "@provides"])| Directive | Purpose | Example |
|---|---|---|
| Define entity with unique key | |
| Allow multiple subgraphs to resolve field | |
| Reference field from another subgraph | |
| Computed field depending on external fields | |
| Conditionally resolve external field | |
| Migrate field to this subgraph | |
| Hide from API schema | |
| Add fields to entity interface | |
type Product @key(fields: "id") {
id: ID!
name: String!
price: Int
}# 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
}type Product @key(fields: "id") {
id: ID!
size: Int @external
weight: Int @external
shippingEstimate: String @requires(fields: "size weight")
}type Money @shareable {
amount: Int!
currency: String!
}type Product @key(fields: "id", resolvable: false) {
id: ID!
}@link@shareable@keyrover supergraph composerover subgraph check