Concetti, idee, strategie
Concetti, idee, strategieStrategie per le gerarchie di API

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"
}