Strategie per le gerarchie di API
Possiamo applicare diverse idee per impostare una gerarchia per i nostri endpoint di API.
Query prima, sovrascrivere lo schema
Possiamo definire il genitore in modo che contenga una query GraphQL comune e poi estenderla per ciascuna delle diverse applicazioni.
Ad esempio, la persisted query genitore /graphql-query/posts/ definirà la query GraphQL:
query GetPosts {
posts {
id
title
url
}
}E le persisted query figlie, per il sito web e l'applicazione mobile, imposteranno la corrispondente schema configuration:
/graphql-query/posts/website/=> usa la schema configuration"Website"/graphql-query/posts/mobile-app/=> usa la schema configuration"Mobile app"
Schema prima, sovrascrivere la query
In alternativa, possiamo dichiarare la schema configuration a livello del genitore, e poi tutti i figli la ereditano e implementano solo la query GraphQL:
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
Tradurre l'endpoint
Traduci il contenuto in un endpoint fornendo il codice della lingua tramite una variabile, che può essere sovrascritta dall'endpoint figlio.
Ad esempio, possiamo creare una persisted query /graphql-query/posts/ con questa query GraphQL:
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}Non abbiamo bisogno di eseguire questo endpoint direttamente, quindi può essere disabilitato.
Poi, creiamo la persisted query figlia /graphql-query/posts/french/, che sovrascrive la variabile GraphQL:
{
"lang": "fr"
}