2016-01-16 14 views

risposta

11

Ci sono due usi di ... relativi ai frammenti.

Incorporando un frammento con riferimento

query Foo { 
    user(id: 4) { 
    ...userFields 
    } 
} 

fragment userFields on User { 
    name 
} 

ha l'effetto di comporre i campi dal frammento nell'interrogazione incorporamento:

query Foo { 
    user(id: 4) { 
    name 
    } 
} 

nota che i frammenti possono comporre altri frammenti.

frammenti Linea

Questi possono essere usati per comporre campi in un modo dipendente dal tipo. Per esempio:

query Foo { 
    profile(id: $id) { 
    url 
    ... on User { 
     homeAddress 
    } 
    ... on Business { 
     address 
    } 
    } 
} 

In questo esempio, il server determinerà se restituire il campo homeAddress o address in fase di esecuzione, a seconda che l'oggetto richiesto è un User o un Business.

2

Ah. È spiegato here:

I frammenti vengono consumati utilizzando l'operatore di spread (...). Tutti i campi selezionati dal frammento verranno aggiunti alla selezione del campo query su allo stesso livello della chiamata del frammento. Ciò avviene tramite livelli multipli di spread di frammenti.