GraphQL Federation: Arhitectură de Subgraphs și Microservicii cu Apollo Federation v2 în GraphQL

Ghid complet pentru Apollo Federation v2: compunerea microserviciilor independente într-un Supergraph unificat, directivele @key, @shareable și gateway-ul Apollo Router.

Sintaxă
type User @key(fields: "id") { id: ID! @shareable; email: String! }

În companiile mari cu sute de servicii, o schemă GraphQL monolitică devine un blocaj masiv. Apollo Federation v2 rezolvă această problemă permițând fiecărei echipe să dețină propriul său Subgraph, în timp ce un gateway ultra-rapid (Apollo Router scris în Rust) le combină într-un singur Supergraph coerent.

Definirea entităților federate cu directiva @key
# Subgraph 1: Serviciul de Utilizatori (users-subgraph.graphql)
extend schema
    @link(url: "https://specs.apollo.dev/federation/v2.0", import: ["@key", "@shareable"])

type User @key(fields: "id") {
    id: ID!
    email: String!
    nume: String!
}

# Subgraph 2: Serviciul de Recenzii (reviews-subgraph.graphql)
# Acest serviciu extinde tipul User adăugându-i câmpul 'recenzii':
extend type User @key(fields: "id") {
    id: ID!
    recenzii: [Review!]!
}

type Review {
    id: ID!
    stele: Int!
    comentariu: String
}
Directivă Federation Rol și semnificație
@key(fields: "id") Definește cheia primară a entității pentru rezolvarea trans-subgraph.
@shareable Permite mai multor subgrafuri să calculeze și să rezolve aceeași valoare.
@external Marchează un câmp ca fiind deținut și rezolvat de alt serviciu.
@provides(fields: "...") Optimizează execuția furnizând date dintr-un cache local.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: GraphQL Federation: Arhitectură de Subgraphs și Microservicii cu Apollo Federation v2

Ai o nelămurire despre utilizarea comenzii GraphQL Federation: Arhitectură de Subgraphs și Microservicii cu Apollo Federation v2 sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.